From 736d0b265e2f8c95a7529a922a8236b4e374f7f3 Mon Sep 17 00:00:00 2001 From: yaroslawekimov Date: Mon, 30 Jul 2018 21:46:26 +0700 Subject: [PATCH] Python SDK --- .gitignore | 51 +- .swagger-codegen-ignore | 23 + .swagger-codegen/VERSION | 1 + .travis.yml | 14 + README.md | 403 +- TestData/Common/Aspose Logo.png | Bin 0 -> 8726 bytes TestData/Common/aspose-cloud.png | Bin 0 -> 14264 bytes TestData/Common/test_doc.docx | Bin 0 -> 14342 bytes TestData/Common/test_multi_pages.docx | Bin 0 -> 62644 bytes .../CompareDocument/compareTestDoc1.doc | Bin 0 -> 22528 bytes .../CompareDocument/compareTestDoc2.doc | Bin 0 -> 22528 bytes .../DocumentActions/ConvertDocument/45.pdf | Bin 0 -> 174055 bytes .../ConvertDocument/Delivery.pdf | Bin 0 -> 2336 bytes .../ConvertDocument/TableDocument.doc | Bin 0 -> 24064 bytes .../ConvertDocument/TestEncodingDocument.txt | 1 + .../ConvertDocument/awesome_table_in_pdf.pdf | Bin 0 -> 313045 bytes .../ConvertDocument/test_doc.docx | Bin 0 -> 14342 bytes .../ConvertDocument/test_uploadfile.docx | Bin 0 -> 12561 bytes .../SampleProtectedBlankWordDocument.docx | Bin 0 -> 10156 bytes .../ExecuteTemplateWithoutRegions.doc | Bin 0 -> 28160 bytes .../ExecuteTemplateWithoutRegions.json | 10 + .../MailMerge/SampleExecuteTemplate.docx | Bin 0 -> 53496 bytes .../MailMerge/SampleExecuteTemplateData.txt | 49 + .../MailMerge/SampleMailMergeTemplate.docx | Bin 0 -> 23765 bytes .../MailMerge/SampleMailMergeTemplateData.txt | 7 + .../MailMerge/TestCleanupOptionsData.xml | 11 + .../MailMerge/TestDataWithRemoteImages.xml | 11 + .../TestDataWithTextInHtmlFormat.xml | 1 + .../MailMerge/TestExecuteTemplate.doc | Bin 0 -> 209920 bytes .../MailMerge/TestExecuteTemplateData.txt | 49 + .../TestExecuteTemplateTextFormat.doc | Bin 0 -> 26112 bytes .../TestExecuteTemplateWithImages.doc | Bin 0 -> 26112 bytes .../TestMailMergeWithCleanupOptions.doc | Bin 0 -> 28672 bytes .../MailMerge/TestMailMergeWithImages.doc | Bin 0 -> 26112 bytes .../DrawingObjects/sampleDrawingObject.txt | 36 + .../DrawingObjects/sample_EmbeddedOLE.docx | Bin 0 -> 22867 bytes .../DocumentElements/Fields/GetField.docx | Bin 0 -> 11446 bytes .../DocumentElements/Footnotes/Footnote.doc | Bin 0 -> 25088 bytes .../FormFields/FormFilled.docx | Bin 0 -> 14324 bytes .../HeaderFooters/HeadersFooters.doc | Bin 0 -> 22528 bytes .../MathObjects/MathObjects.docx | Bin 0 -> 15198 bytes TestData/DocumentElements/Runs/Run.doc | Bin 0 -> 27136 bytes .../DocumentElements/Tables/TablesGet.docx | Bin 0 -> 12278 bytes .../Text/SampleWordDocument.docx | Bin 0 -> 79138 bytes asposewordscloud/__init__.py | 186 + asposewordscloud/api_client.py | 631 + asposewordscloud/apis/__init__.py | 6 + asposewordscloud/apis/words_api.py | 16829 ++++++++++++++++ asposewordscloud/configuration.py | 280 + asposewordscloud/models/__init__.py | 179 + asposewordscloud/models/aspose_response.py | 150 + .../models/available_fonts_response.py | 228 + .../models/bmp_save_options_data.py | 824 + asposewordscloud/models/bookmark.py | 174 + asposewordscloud/models/bookmark_data.py | 148 + asposewordscloud/models/bookmark_response.py | 176 + asposewordscloud/models/bookmarks.py | 148 + .../models/bookmarks_outline_level_data.py | 150 + asposewordscloud/models/bookmarks_response.py | 176 + asposewordscloud/models/border.py | 294 + asposewordscloud/models/border_response.py | 176 + asposewordscloud/models/borders_collection.py | 148 + asposewordscloud/models/borders_response.py | 176 + .../models/classification_response.py | 228 + .../models/classification_result.py | 150 + asposewordscloud/models/comment.py | 304 + asposewordscloud/models/comment_link.py | 122 + asposewordscloud/models/comment_response.py | 176 + .../models/comments_collection.py | 148 + asposewordscloud/models/comments_response.py | 176 + asposewordscloud/models/compare_data.py | 174 + .../models/doc_save_options_data.py | 382 + asposewordscloud/models/document.py | 266 + asposewordscloud/models/document_entry.py | 148 + .../models/document_entry_list.py | 122 + asposewordscloud/models/document_position.py | 148 + .../models/document_properties.py | 148 + .../models/document_properties_response.py | 176 + asposewordscloud/models/document_property.py | 200 + .../models/document_property_response.py | 176 + asposewordscloud/models/document_response.py | 176 + asposewordscloud/models/document_stat_data.py | 232 + .../models/downsample_options_data.py | 174 + asposewordscloud/models/drawing_object.py | 432 + .../models/drawing_object_collection.py | 148 + .../models/drawing_object_link.py | 148 + .../models/drawing_object_response.py | 176 + .../models/drawing_objects_response.py | 176 + .../models/emf_save_options_data.py | 824 + .../models/epub_save_options_data.py | 1368 ++ asposewordscloud/models/field.py | 226 + asposewordscloud/models/field_collection.py | 148 + asposewordscloud/models/field_link.py | 174 + asposewordscloud/models/field_names.py | 148 + .../models/field_names_response.py | 176 + asposewordscloud/models/field_response.py | 176 + asposewordscloud/models/fields_response.py | 176 + asposewordscloud/models/file_link.py | 200 + .../models/fixed_page_save_options_data.py | 486 + asposewordscloud/models/font.py | 1186 ++ asposewordscloud/models/font_info.py | 200 + asposewordscloud/models/font_response.py | 176 + asposewordscloud/models/footnote.py | 286 + .../models/footnote_collection.py | 148 + asposewordscloud/models/footnote_link.py | 148 + asposewordscloud/models/footnote_response.py | 176 + asposewordscloud/models/footnotes_response.py | 176 + .../models/footnotes_stat_data.py | 152 + asposewordscloud/models/form_field.py | 382 + .../models/form_field_checkbox.py | 460 + .../models/form_field_collection.py | 148 + .../models/form_field_drop_down.py | 434 + .../models/form_field_response.py | 176 + .../models/form_field_text_input.py | 494 + .../models/form_fields_response.py | 176 + .../models/gif_save_options_data.py | 824 + .../models/graphics_quality_options_data.py | 292 + asposewordscloud/models/header_footer.py | 208 + asposewordscloud/models/header_footer_link.py | 156 + .../models/header_footer_link_collection.py | 148 + .../models/header_footer_response.py | 176 + .../models/header_footers_response.py | 176 + .../models/html_fixed_save_options_data.py | 798 + .../models/html_save_options_data.py | 1342 ++ asposewordscloud/models/hyperlink.py | 174 + asposewordscloud/models/hyperlink_response.py | 176 + asposewordscloud/models/hyperlinks.py | 148 + .../models/hyperlinks_response.py | 176 + .../models/image_save_options_data.py | 824 + .../models/jpeg_save_options_data.py | 824 + asposewordscloud/models/link.py | 200 + asposewordscloud/models/link_element.py | 122 + .../models/load_web_document_data.py | 148 + .../models/metafile_rendering_options_data.py | 200 + .../models/mhtml_save_options_data.py | 1342 ++ .../models/modification_operation_result.py | 148 + asposewordscloud/models/node_link.py | 148 + .../models/odt_save_options_data.py | 416 + asposewordscloud/models/office_math_link.py | 148 + asposewordscloud/models/office_math_object.py | 276 + .../models/office_math_object_response.py | 176 + .../models/office_math_objects_collection.py | 148 + .../models/office_math_objects_response.py | 176 + .../models/ooxml_save_options_data.py | 408 + .../models/outline_options_data.py | 226 + asposewordscloud/models/page_number.py | 204 + asposewordscloud/models/page_setup.py | 940 + asposewordscloud/models/page_stat_data.py | 206 + asposewordscloud/models/paragraph.py | 174 + asposewordscloud/models/paragraph_insert.py | 122 + asposewordscloud/models/paragraph_link.py | 174 + .../models/paragraph_link_collection.py | 148 + .../paragraph_link_collection_response.py | 176 + asposewordscloud/models/paragraph_response.py | 176 + .../models/pcl_save_options_data.py | 538 + .../pdf_digital_signature_details_data.py | 226 + .../models/pdf_encryption_details_data.py | 200 + .../models/pdf_save_options_data.py | 1084 + .../models/png_save_options_data.py | 824 + asposewordscloud/models/preferred_width.py | 158 + asposewordscloud/models/protection_data.py | 122 + .../models/protection_data_response.py | 202 + asposewordscloud/models/protection_request.py | 174 + .../models/protection_response.py | 202 + .../models/ps_save_options_data.py | 512 + .../models/replace_text_request.py | 232 + .../models/replace_text_response.py | 202 + asposewordscloud/models/requests/__init__.py | 123 + .../requests/accept_all_revisions_request.py | 47 + .../requests/classify_document_request.py | 46 + .../models/requests/classify_request.py | 38 + ...ate_or_update_document_property_request.py | 54 + .../models/requests/delete_border_request.py | 54 + .../models/requests/delete_borders_request.py | 52 + .../models/requests/delete_comment_request.py | 52 + .../delete_document_macros_request.py | 50 + .../delete_document_property_request.py | 52 + .../delete_document_watermark_request.py | 50 + .../requests/delete_drawing_object_request.py | 54 + .../models/requests/delete_field_request.py | 54 + .../models/requests/delete_fields_request.py | 52 + .../requests/delete_footnote_request.py | 54 + .../requests/delete_form_field_request.py | 54 + .../requests/delete_header_footer_request.py | 54 + .../delete_headers_footers_request.py | 54 + .../delete_office_math_object_request.py | 54 + .../requests/delete_paragraph_request.py | 54 + .../models/requests/delete_run_request.py | 54 + .../requests/delete_table_cell_request.py | 54 + .../models/requests/delete_table_request.py | 54 + .../requests/delete_table_row_request.py | 54 + .../delete_unprotect_document_request.py | 48 + .../requests/get_available_fonts_request.py | 36 + .../models/requests/get_border_request.py | 48 + .../models/requests/get_borders_request.py | 46 + .../models/requests/get_comment_request.py | 46 + .../models/requests/get_comments_request.py | 44 + .../get_document_bookmark_by_name_request.py | 46 + .../get_document_bookmarks_request.py | 44 + ...ocument_drawing_object_by_index_request.py | 48 + ...ument_drawing_object_image_data_request.py | 48 + ...ocument_drawing_object_ole_data_request.py | 48 + .../get_document_drawing_objects_request.py | 46 + .../get_document_field_names_request.py | 46 + ...get_document_hyperlink_by_index_request.py | 46 + .../get_document_hyperlinks_request.py | 44 + .../get_document_paragraph_request.py | 48 + ...get_document_paragraph_run_font_request.py | 48 + .../get_document_paragraph_run_request.py | 48 + .../get_document_paragraph_runs_request.py | 46 + .../get_document_paragraphs_request.py | 46 + .../get_document_properties_request.py | 44 + .../requests/get_document_property_request.py | 46 + .../get_document_protection_request.py | 44 + .../models/requests/get_document_request.py | 44 + .../get_document_statistics_request.py | 50 + .../get_document_text_items_request.py | 44 + .../get_document_with_format_request.py | 50 + .../models/requests/get_field_request.py | 48 + .../models/requests/get_fields_request.py | 46 + .../models/requests/get_footnote_request.py | 48 + .../models/requests/get_footnotes_request.py | 46 + .../models/requests/get_form_field_request.py | 48 + .../requests/get_form_fields_request.py | 46 + .../get_header_footer_of_section_request.py | 50 + .../requests/get_header_footer_request.py | 48 + .../requests/get_header_footers_request.py | 48 + .../get_office_math_object_request.py | 48 + .../get_office_math_objects_request.py | 46 + .../get_section_page_setup_request.py | 46 + .../models/requests/get_section_request.py | 46 + .../models/requests/get_sections_request.py | 44 + .../requests/get_table_cell_format_request.py | 48 + .../models/requests/get_table_cell_request.py | 48 + .../requests/get_table_properties_request.py | 48 + .../models/requests/get_table_request.py | 48 + .../requests/get_table_row_format_request.py | 48 + .../models/requests/get_table_row_request.py | 48 + .../models/requests/get_tables_request.py | 46 + .../requests/insert_table_cell_request.py | 54 + .../models/requests/insert_table_request.py | 54 + .../requests/insert_table_row_request.py | 54 + .../requests/post_append_document_request.py | 52 + ...post_change_document_protection_request.py | 48 + .../models/requests/post_comment_request.py | 54 + .../requests/post_compare_document_request.py | 48 + ...ost_document_execute_mail_merge_request.py | 56 + ...ost_document_paragraph_run_font_request.py | 56 + .../requests/post_document_save_as_request.py | 50 + .../requests/post_drawing_object_request.py | 58 + .../requests/post_execute_template_request.py | 54 + .../models/requests/post_field_request.py | 56 + .../models/requests/post_footnote_request.py | 56 + .../requests/post_form_field_request.py | 56 + ...insert_document_watermark_image_request.py | 56 + ..._insert_document_watermark_text_request.py | 52 + .../post_insert_page_numbers_request.py | 52 + .../post_load_web_document_request.py | 38 + .../requests/post_replace_text_request.py | 52 + .../models/requests/post_run_request.py | 56 + .../requests/post_split_document_request.py | 56 + .../post_update_document_bookmark_request.py | 54 + .../post_update_document_fields_request.py | 46 + .../models/requests/put_comment_request.py | 52 + .../requests/put_convert_document_request.py | 46 + .../requests/put_create_document_request.py | 40 + .../put_document_field_names_request.py | 38 + .../put_document_save_as_tiff_request.py | 86 + .../requests/put_drawing_object_request.py | 56 + .../put_execute_mail_merge_online_request.py | 44 + .../put_execute_template_online_request.py | 46 + .../models/requests/put_field_request.py | 56 + .../models/requests/put_footnote_request.py | 54 + .../models/requests/put_form_field_request.py | 56 + .../requests/put_header_footer_request.py | 54 + .../models/requests/put_paragraph_request.py | 56 + .../requests/put_protect_document_request.py | 48 + .../models/requests/put_run_request.py | 56 + .../requests/reject_all_revisions_request.py | 46 + .../requests/render_drawing_object_request.py | 52 + .../requests/render_math_object_request.py | 52 + .../models/requests/render_page_request.py | 50 + .../requests/render_paragraph_request.py | 52 + .../models/requests/render_table_request.py | 52 + .../models/requests/reset_cache_request.py | 35 + .../models/requests/search_request.py | 46 + .../models/requests/update_border_request.py | 56 + .../update_section_page_setup_request.py | 54 + .../update_table_cell_format_request.py | 56 + .../update_table_properties_request.py | 56 + .../update_table_row_format_request.py | 56 + .../models/revisions_modification_response.py | 176 + .../models/rtf_save_options_data.py | 408 + asposewordscloud/models/run.py | 174 + asposewordscloud/models/run_link.py | 174 + asposewordscloud/models/run_response.py | 176 + asposewordscloud/models/runs.py | 148 + asposewordscloud/models/runs_response.py | 176 + asposewordscloud/models/save_options_data.py | 330 + asposewordscloud/models/save_response.py | 176 + asposewordscloud/models/save_result.py | 174 + asposewordscloud/models/search_response.py | 202 + asposewordscloud/models/search_result.py | 148 + .../models/search_results_collection.py | 148 + asposewordscloud/models/section.py | 252 + asposewordscloud/models/section_link.py | 122 + .../models/section_link_collection.py | 148 + .../section_link_collection_response.py | 176 + .../models/section_page_setup_response.py | 176 + asposewordscloud/models/section_response.py | 176 + .../models/split_document_response.py | 176 + .../models/split_document_result.py | 174 + asposewordscloud/models/stat_data_response.py | 202 + asposewordscloud/models/story_child_nodes.py | 122 + asposewordscloud/models/string_format_data.py | 266 + .../models/svg_save_options_data.py | 642 + asposewordscloud/models/table.py | 200 + asposewordscloud/models/table_cell.py | 174 + asposewordscloud/models/table_cell_format.py | 466 + .../models/table_cell_format_response.py | 176 + asposewordscloud/models/table_cell_insert.py | 122 + .../models/table_cell_response.py | 176 + asposewordscloud/models/table_insert.py | 178 + asposewordscloud/models/table_link.py | 148 + .../models/table_link_collection.py | 148 + .../models/table_link_collection_response.py | 176 + asposewordscloud/models/table_properties.py | 518 + .../models/table_properties_response.py | 176 + asposewordscloud/models/table_response.py | 176 + asposewordscloud/models/table_row.py | 200 + asposewordscloud/models/table_row_format.py | 234 + .../models/table_row_format_response.py | 176 + asposewordscloud/models/table_row_insert.py | 150 + asposewordscloud/models/table_row_response.py | 176 + asposewordscloud/models/text_item.py | 148 + asposewordscloud/models/text_items.py | 148 + .../models/text_items_response.py | 176 + .../models/text_save_options_data.py | 486 + .../models/tiff_save_options_data.py | 876 + asposewordscloud/models/watermark_text.py | 150 + .../models/word_ml_save_options_data.py | 356 + .../models/words_api_error_response.py | 176 + asposewordscloud/models/words_api_link.py | 200 + .../models/xaml_fixed_save_options_data.py | 538 + .../models/xaml_flow_save_options_data.py | 382 + asposewordscloud/models/xml_color.py | 150 + .../models/xps_save_options_data.py | 590 + asposewordscloud/rest.py | 332 + docs/AsposeResponse.md | 11 + docs/AvailableFontsResponse.md | 14 + docs/BmpSaveOptionsData.md | 37 + docs/Bookmark.md | 12 + docs/BookmarkData.md | 11 + docs/BookmarkResponse.md | 12 + docs/Bookmarks.md | 11 + docs/BookmarksOutlineLevelData.md | 11 + docs/BookmarksResponse.md | 12 + docs/Border.md | 16 + docs/BorderResponse.md | 12 + docs/BordersCollection.md | 11 + docs/BordersResponse.md | 12 + docs/ClassificationResponse.md | 14 + docs/ClassificationResult.md | 11 + docs/Comment.md | 17 + docs/CommentLink.md | 10 + docs/CommentResponse.md | 12 + docs/CommentsCollection.md | 11 + docs/CommentsResponse.md | 12 + docs/CompareData.md | 12 + docs/DocSaveOptionsData.md | 20 + docs/Document.md | 15 + docs/DocumentEntry.md | 11 + docs/DocumentEntryList.md | 10 + docs/DocumentPosition.md | 11 + docs/DocumentProperties.md | 11 + docs/DocumentPropertiesResponse.md | 12 + docs/DocumentProperty.md | 13 + docs/DocumentPropertyResponse.md | 12 + docs/DocumentResponse.md | 12 + docs/DocumentStatData.md | 14 + docs/DownsampleOptionsData.md | 12 + docs/DrawingObject.md | 21 + docs/DrawingObjectCollection.md | 11 + docs/DrawingObjectLink.md | 11 + docs/DrawingObjectResponse.md | 12 + docs/DrawingObjectsResponse.md | 12 + docs/EmfSaveOptionsData.md | 37 + docs/EpubSaveOptionsData.md | 57 + docs/Field.md | 14 + docs/FieldCollection.md | 11 + docs/FieldLink.md | 12 + docs/FieldNames.md | 11 + docs/FieldNamesResponse.md | 12 + docs/FieldResponse.md | 12 + docs/FieldsResponse.md | 12 + docs/FileLink.md | 13 + docs/FixedPageSaveOptionsData.md | 24 + docs/Font.md | 50 + docs/FontInfo.md | 13 + docs/FontResponse.md | 12 + docs/Footnote.md | 16 + docs/FootnoteCollection.md | 11 + docs/FootnoteLink.md | 11 + docs/FootnoteResponse.md | 12 + docs/FootnotesResponse.md | 12 + docs/FootnotesStatData.md | 11 + docs/FormField.md | 20 + docs/FormFieldCheckbox.md | 23 + docs/FormFieldCollection.md | 11 + docs/FormFieldDropDown.md | 22 + docs/FormFieldResponse.md | 12 + docs/FormFieldTextInput.md | 24 + docs/FormFieldsResponse.md | 12 + docs/GifSaveOptionsData.md | 37 + docs/GraphicsQualityOptionsData.md | 15 + docs/HeaderFooter.md | 13 + docs/HeaderFooterLink.md | 11 + docs/HeaderFooterLinkCollection.md | 11 + docs/HeaderFooterResponse.md | 12 + docs/HeaderFootersResponse.md | 12 + docs/HtmlFixedSaveOptionsData.md | 36 + docs/HtmlSaveOptionsData.md | 56 + docs/Hyperlink.md | 12 + docs/HyperlinkResponse.md | 12 + docs/Hyperlinks.md | 11 + docs/HyperlinksResponse.md | 12 + docs/ImageSaveOptionsData.md | 37 + docs/JpegSaveOptionsData.md | 37 + docs/Link.md | 13 + docs/LinkElement.md | 10 + docs/LoadWebDocumentData.md | 11 + docs/MetafileRenderingOptionsData.md | 13 + docs/MhtmlSaveOptionsData.md | 56 + docs/ModificationOperationResult.md | 11 + docs/NodeLink.md | 11 + docs/OdtSaveOptionsData.md | 21 + docs/OfficeMathLink.md | 11 + docs/OfficeMathObject.md | 15 + docs/OfficeMathObjectResponse.md | 12 + docs/OfficeMathObjectsCollection.md | 11 + docs/OfficeMathObjectsResponse.md | 12 + docs/OoxmlSaveOptionsData.md | 21 + docs/OutlineOptionsData.md | 14 + docs/PageNumber.md | 13 + docs/PageSetup.md | 39 + docs/PageStatData.md | 13 + docs/Paragraph.md | 12 + docs/ParagraphInsert.md | 10 + docs/ParagraphLink.md | 12 + docs/ParagraphLinkCollection.md | 11 + docs/ParagraphLinkCollectionResponse.md | 12 + docs/ParagraphResponse.md | 12 + docs/PclSaveOptionsData.md | 26 + docs/PdfDigitalSignatureDetailsData.md | 14 + docs/PdfEncryptionDetailsData.md | 13 + docs/PdfSaveOptionsData.md | 47 + docs/PngSaveOptionsData.md | 37 + docs/PreferredWidth.md | 11 + docs/ProtectionData.md | 10 + docs/ProtectionDataResponse.md | 13 + docs/ProtectionRequest.md | 12 + docs/ProtectionResponse.md | 13 + docs/PsSaveOptionsData.md | 25 + docs/ReplaceTextRequest.md | 14 + docs/ReplaceTextResponse.md | 13 + docs/RevisionsModificationResponse.md | 12 + docs/RtfSaveOptionsData.md | 21 + docs/Run.md | 12 + docs/RunLink.md | 12 + docs/RunResponse.md | 12 + docs/Runs.md | 11 + docs/RunsResponse.md | 12 + docs/SaveOptionsData.md | 18 + docs/SaveResponse.md | 12 + docs/SaveResult.md | 12 + docs/SearchResponse.md | 13 + docs/SearchResult.md | 11 + docs/SearchResultsCollection.md | 11 + docs/Section.md | 15 + docs/SectionLink.md | 10 + docs/SectionLinkCollection.md | 11 + docs/SectionLinkCollectionResponse.md | 12 + docs/SectionPageSetupResponse.md | 12 + docs/SectionResponse.md | 12 + docs/SplitDocumentResponse.md | 12 + docs/SplitDocumentResult.md | 12 + docs/StatDataResponse.md | 13 + docs/StoryChildNodes.md | 10 + docs/StringFormatData.md | 14 + docs/SvgSaveOptionsData.md | 30 + docs/Table.md | 13 + docs/TableCell.md | 12 + docs/TableCellFormat.md | 22 + docs/TableCellFormatResponse.md | 12 + docs/TableCellInsert.md | 10 + docs/TableCellResponse.md | 12 + docs/TableInsert.md | 12 + docs/TableLink.md | 11 + docs/TableLinkCollection.md | 11 + docs/TableLinkCollectionResponse.md | 12 + docs/TableProperties.md | 24 + docs/TablePropertiesResponse.md | 12 + docs/TableResponse.md | 12 + docs/TableRow.md | 13 + docs/TableRowFormat.md | 14 + docs/TableRowFormatResponse.md | 12 + docs/TableRowInsert.md | 11 + docs/TableRowResponse.md | 12 + docs/TextItem.md | 11 + docs/TextItems.md | 11 + docs/TextItemsResponse.md | 12 + docs/TextSaveOptionsData.md | 24 + docs/TiffSaveOptionsData.md | 39 + docs/WatermarkText.md | 11 + docs/WordMLSaveOptionsData.md | 19 + docs/WordsApi.md | 7515 +++++++ docs/WordsApiErrorResponse.md | 12 + docs/WordsApiLink.md | 13 + docs/XamlFixedSaveOptionsData.md | 26 + docs/XamlFlowSaveOptionsData.md | 20 + docs/XmlColor.md | 11 + docs/XpsSaveOptionsData.md | 28 + git_push.sh | 52 + requirements.txt | 5 + scripts/runTests.bat | 1 + setup.py | 42 + test-requirements.txt | 1 + test.sh | 2 + test/Common/__init__.py | 0 test/Common/test_api_coverage.py | 61 + test/Common/test_error_handling.py | 46 + test/Common/test_font_cache.py | 41 + test/Document/__init__.py | 0 test/Document/test_document.py | 65 + test/DocumentActions/__init__.py | 0 test/DocumentActions/test_append_document.py | 55 + test/DocumentActions/test_classification.py | 57 + test/DocumentActions/test_compare_document.py | 60 + test/DocumentActions/test_convert_document.py | 136 + .../test_document_protection.py | 103 + .../test_document_statistics.py | 49 + .../test_execute_mail_merge.py | 65 + test/DocumentActions/test_execute_template.py | 65 + .../DocumentActions/test_load_web_document.py | 43 + .../DocumentActions/test_mail_merge_fields.py | 59 + test/DocumentActions/test_revisions.py | 66 + test/DocumentActions/test_split_document.py | 57 + test/DocumentElements/__init__.py | 0 test/DocumentElements/test_bookmarks.py | 87 + test/DocumentElements/test_comments.py | 125 + .../test_document_properties.py | 106 + test/DocumentElements/test_drawing_objects.py | 175 + test/DocumentElements/test_fields.py | 177 + test/DocumentElements/test_footnote.py | 119 + test/DocumentElements/test_form_field.py | 129 + test/DocumentElements/test_header_footer.py | 140 + test/DocumentElements/test_hyperlinks.py | 69 + test/DocumentElements/test_macros.py | 51 + test/DocumentElements/test_math_objects.py | 106 + test/DocumentElements/test_pages.py | 90 + test/DocumentElements/test_paragraphs.py | 207 + test/DocumentElements/test_runs.py | 92 + test/DocumentElements/test_sections.py | 69 + test/DocumentElements/test_tables.py | 449 + test/DocumentElements/test_text.py | 89 + test/DocumentElements/test_watermarks.py | 93 + test/__init__.py | 33 + test/base_test_context.py | 56 + tox.ini | 10 + 569 files changed, 87197 insertions(+), 46 deletions(-) create mode 100644 .swagger-codegen-ignore create mode 100644 .swagger-codegen/VERSION create mode 100644 .travis.yml create mode 100644 TestData/Common/Aspose Logo.png create mode 100644 TestData/Common/aspose-cloud.png create mode 100644 TestData/Common/test_doc.docx create mode 100644 TestData/Common/test_multi_pages.docx create mode 100644 TestData/DocumentActions/CompareDocument/compareTestDoc1.doc create mode 100644 TestData/DocumentActions/CompareDocument/compareTestDoc2.doc create mode 100644 TestData/DocumentActions/ConvertDocument/45.pdf create mode 100644 TestData/DocumentActions/ConvertDocument/Delivery.pdf create mode 100644 TestData/DocumentActions/ConvertDocument/TableDocument.doc create mode 100644 TestData/DocumentActions/ConvertDocument/TestEncodingDocument.txt create mode 100644 TestData/DocumentActions/ConvertDocument/awesome_table_in_pdf.pdf create mode 100644 TestData/DocumentActions/ConvertDocument/test_doc.docx create mode 100644 TestData/DocumentActions/ConvertDocument/test_uploadfile.docx create mode 100644 TestData/DocumentActions/DocumentProtection/SampleProtectedBlankWordDocument.docx create mode 100644 TestData/DocumentActions/MailMerge/ExecuteTemplateWithoutRegions.doc create mode 100644 TestData/DocumentActions/MailMerge/ExecuteTemplateWithoutRegions.json create mode 100644 TestData/DocumentActions/MailMerge/SampleExecuteTemplate.docx create mode 100644 TestData/DocumentActions/MailMerge/SampleExecuteTemplateData.txt create mode 100644 TestData/DocumentActions/MailMerge/SampleMailMergeTemplate.docx create mode 100644 TestData/DocumentActions/MailMerge/SampleMailMergeTemplateData.txt create mode 100644 TestData/DocumentActions/MailMerge/TestCleanupOptionsData.xml create mode 100644 TestData/DocumentActions/MailMerge/TestDataWithRemoteImages.xml create mode 100644 TestData/DocumentActions/MailMerge/TestDataWithTextInHtmlFormat.xml create mode 100644 TestData/DocumentActions/MailMerge/TestExecuteTemplate.doc create mode 100644 TestData/DocumentActions/MailMerge/TestExecuteTemplateData.txt create mode 100644 TestData/DocumentActions/MailMerge/TestExecuteTemplateTextFormat.doc create mode 100644 TestData/DocumentActions/MailMerge/TestExecuteTemplateWithImages.doc create mode 100644 TestData/DocumentActions/MailMerge/TestMailMergeWithCleanupOptions.doc create mode 100644 TestData/DocumentActions/MailMerge/TestMailMergeWithImages.doc create mode 100644 TestData/DocumentElements/DrawingObjects/sampleDrawingObject.txt create mode 100644 TestData/DocumentElements/DrawingObjects/sample_EmbeddedOLE.docx create mode 100644 TestData/DocumentElements/Fields/GetField.docx create mode 100644 TestData/DocumentElements/Footnotes/Footnote.doc create mode 100644 TestData/DocumentElements/FormFields/FormFilled.docx create mode 100644 TestData/DocumentElements/HeaderFooters/HeadersFooters.doc create mode 100644 TestData/DocumentElements/MathObjects/MathObjects.docx create mode 100644 TestData/DocumentElements/Runs/Run.doc create mode 100644 TestData/DocumentElements/Tables/TablesGet.docx create mode 100644 TestData/DocumentElements/Text/SampleWordDocument.docx create mode 100644 asposewordscloud/__init__.py create mode 100644 asposewordscloud/api_client.py create mode 100644 asposewordscloud/apis/__init__.py create mode 100644 asposewordscloud/apis/words_api.py create mode 100644 asposewordscloud/configuration.py create mode 100644 asposewordscloud/models/__init__.py create mode 100644 asposewordscloud/models/aspose_response.py create mode 100644 asposewordscloud/models/available_fonts_response.py create mode 100644 asposewordscloud/models/bmp_save_options_data.py create mode 100644 asposewordscloud/models/bookmark.py create mode 100644 asposewordscloud/models/bookmark_data.py create mode 100644 asposewordscloud/models/bookmark_response.py create mode 100644 asposewordscloud/models/bookmarks.py create mode 100644 asposewordscloud/models/bookmarks_outline_level_data.py create mode 100644 asposewordscloud/models/bookmarks_response.py create mode 100644 asposewordscloud/models/border.py create mode 100644 asposewordscloud/models/border_response.py create mode 100644 asposewordscloud/models/borders_collection.py create mode 100644 asposewordscloud/models/borders_response.py create mode 100644 asposewordscloud/models/classification_response.py create mode 100644 asposewordscloud/models/classification_result.py create mode 100644 asposewordscloud/models/comment.py create mode 100644 asposewordscloud/models/comment_link.py create mode 100644 asposewordscloud/models/comment_response.py create mode 100644 asposewordscloud/models/comments_collection.py create mode 100644 asposewordscloud/models/comments_response.py create mode 100644 asposewordscloud/models/compare_data.py create mode 100644 asposewordscloud/models/doc_save_options_data.py create mode 100644 asposewordscloud/models/document.py create mode 100644 asposewordscloud/models/document_entry.py create mode 100644 asposewordscloud/models/document_entry_list.py create mode 100644 asposewordscloud/models/document_position.py create mode 100644 asposewordscloud/models/document_properties.py create mode 100644 asposewordscloud/models/document_properties_response.py create mode 100644 asposewordscloud/models/document_property.py create mode 100644 asposewordscloud/models/document_property_response.py create mode 100644 asposewordscloud/models/document_response.py create mode 100644 asposewordscloud/models/document_stat_data.py create mode 100644 asposewordscloud/models/downsample_options_data.py create mode 100644 asposewordscloud/models/drawing_object.py create mode 100644 asposewordscloud/models/drawing_object_collection.py create mode 100644 asposewordscloud/models/drawing_object_link.py create mode 100644 asposewordscloud/models/drawing_object_response.py create mode 100644 asposewordscloud/models/drawing_objects_response.py create mode 100644 asposewordscloud/models/emf_save_options_data.py create mode 100644 asposewordscloud/models/epub_save_options_data.py create mode 100644 asposewordscloud/models/field.py create mode 100644 asposewordscloud/models/field_collection.py create mode 100644 asposewordscloud/models/field_link.py create mode 100644 asposewordscloud/models/field_names.py create mode 100644 asposewordscloud/models/field_names_response.py create mode 100644 asposewordscloud/models/field_response.py create mode 100644 asposewordscloud/models/fields_response.py create mode 100644 asposewordscloud/models/file_link.py create mode 100644 asposewordscloud/models/fixed_page_save_options_data.py create mode 100644 asposewordscloud/models/font.py create mode 100644 asposewordscloud/models/font_info.py create mode 100644 asposewordscloud/models/font_response.py create mode 100644 asposewordscloud/models/footnote.py create mode 100644 asposewordscloud/models/footnote_collection.py create mode 100644 asposewordscloud/models/footnote_link.py create mode 100644 asposewordscloud/models/footnote_response.py create mode 100644 asposewordscloud/models/footnotes_response.py create mode 100644 asposewordscloud/models/footnotes_stat_data.py create mode 100644 asposewordscloud/models/form_field.py create mode 100644 asposewordscloud/models/form_field_checkbox.py create mode 100644 asposewordscloud/models/form_field_collection.py create mode 100644 asposewordscloud/models/form_field_drop_down.py create mode 100644 asposewordscloud/models/form_field_response.py create mode 100644 asposewordscloud/models/form_field_text_input.py create mode 100644 asposewordscloud/models/form_fields_response.py create mode 100644 asposewordscloud/models/gif_save_options_data.py create mode 100644 asposewordscloud/models/graphics_quality_options_data.py create mode 100644 asposewordscloud/models/header_footer.py create mode 100644 asposewordscloud/models/header_footer_link.py create mode 100644 asposewordscloud/models/header_footer_link_collection.py create mode 100644 asposewordscloud/models/header_footer_response.py create mode 100644 asposewordscloud/models/header_footers_response.py create mode 100644 asposewordscloud/models/html_fixed_save_options_data.py create mode 100644 asposewordscloud/models/html_save_options_data.py create mode 100644 asposewordscloud/models/hyperlink.py create mode 100644 asposewordscloud/models/hyperlink_response.py create mode 100644 asposewordscloud/models/hyperlinks.py create mode 100644 asposewordscloud/models/hyperlinks_response.py create mode 100644 asposewordscloud/models/image_save_options_data.py create mode 100644 asposewordscloud/models/jpeg_save_options_data.py create mode 100644 asposewordscloud/models/link.py create mode 100644 asposewordscloud/models/link_element.py create mode 100644 asposewordscloud/models/load_web_document_data.py create mode 100644 asposewordscloud/models/metafile_rendering_options_data.py create mode 100644 asposewordscloud/models/mhtml_save_options_data.py create mode 100644 asposewordscloud/models/modification_operation_result.py create mode 100644 asposewordscloud/models/node_link.py create mode 100644 asposewordscloud/models/odt_save_options_data.py create mode 100644 asposewordscloud/models/office_math_link.py create mode 100644 asposewordscloud/models/office_math_object.py create mode 100644 asposewordscloud/models/office_math_object_response.py create mode 100644 asposewordscloud/models/office_math_objects_collection.py create mode 100644 asposewordscloud/models/office_math_objects_response.py create mode 100644 asposewordscloud/models/ooxml_save_options_data.py create mode 100644 asposewordscloud/models/outline_options_data.py create mode 100644 asposewordscloud/models/page_number.py create mode 100644 asposewordscloud/models/page_setup.py create mode 100644 asposewordscloud/models/page_stat_data.py create mode 100644 asposewordscloud/models/paragraph.py create mode 100644 asposewordscloud/models/paragraph_insert.py create mode 100644 asposewordscloud/models/paragraph_link.py create mode 100644 asposewordscloud/models/paragraph_link_collection.py create mode 100644 asposewordscloud/models/paragraph_link_collection_response.py create mode 100644 asposewordscloud/models/paragraph_response.py create mode 100644 asposewordscloud/models/pcl_save_options_data.py create mode 100644 asposewordscloud/models/pdf_digital_signature_details_data.py create mode 100644 asposewordscloud/models/pdf_encryption_details_data.py create mode 100644 asposewordscloud/models/pdf_save_options_data.py create mode 100644 asposewordscloud/models/png_save_options_data.py create mode 100644 asposewordscloud/models/preferred_width.py create mode 100644 asposewordscloud/models/protection_data.py create mode 100644 asposewordscloud/models/protection_data_response.py create mode 100644 asposewordscloud/models/protection_request.py create mode 100644 asposewordscloud/models/protection_response.py create mode 100644 asposewordscloud/models/ps_save_options_data.py create mode 100644 asposewordscloud/models/replace_text_request.py create mode 100644 asposewordscloud/models/replace_text_response.py create mode 100644 asposewordscloud/models/requests/__init__.py create mode 100644 asposewordscloud/models/requests/accept_all_revisions_request.py create mode 100644 asposewordscloud/models/requests/classify_document_request.py create mode 100644 asposewordscloud/models/requests/classify_request.py create mode 100644 asposewordscloud/models/requests/create_or_update_document_property_request.py create mode 100644 asposewordscloud/models/requests/delete_border_request.py create mode 100644 asposewordscloud/models/requests/delete_borders_request.py create mode 100644 asposewordscloud/models/requests/delete_comment_request.py create mode 100644 asposewordscloud/models/requests/delete_document_macros_request.py create mode 100644 asposewordscloud/models/requests/delete_document_property_request.py create mode 100644 asposewordscloud/models/requests/delete_document_watermark_request.py create mode 100644 asposewordscloud/models/requests/delete_drawing_object_request.py create mode 100644 asposewordscloud/models/requests/delete_field_request.py create mode 100644 asposewordscloud/models/requests/delete_fields_request.py create mode 100644 asposewordscloud/models/requests/delete_footnote_request.py create mode 100644 asposewordscloud/models/requests/delete_form_field_request.py create mode 100644 asposewordscloud/models/requests/delete_header_footer_request.py create mode 100644 asposewordscloud/models/requests/delete_headers_footers_request.py create mode 100644 asposewordscloud/models/requests/delete_office_math_object_request.py create mode 100644 asposewordscloud/models/requests/delete_paragraph_request.py create mode 100644 asposewordscloud/models/requests/delete_run_request.py create mode 100644 asposewordscloud/models/requests/delete_table_cell_request.py create mode 100644 asposewordscloud/models/requests/delete_table_request.py create mode 100644 asposewordscloud/models/requests/delete_table_row_request.py create mode 100644 asposewordscloud/models/requests/delete_unprotect_document_request.py create mode 100644 asposewordscloud/models/requests/get_available_fonts_request.py create mode 100644 asposewordscloud/models/requests/get_border_request.py create mode 100644 asposewordscloud/models/requests/get_borders_request.py create mode 100644 asposewordscloud/models/requests/get_comment_request.py create mode 100644 asposewordscloud/models/requests/get_comments_request.py create mode 100644 asposewordscloud/models/requests/get_document_bookmark_by_name_request.py create mode 100644 asposewordscloud/models/requests/get_document_bookmarks_request.py create mode 100644 asposewordscloud/models/requests/get_document_drawing_object_by_index_request.py create mode 100644 asposewordscloud/models/requests/get_document_drawing_object_image_data_request.py create mode 100644 asposewordscloud/models/requests/get_document_drawing_object_ole_data_request.py create mode 100644 asposewordscloud/models/requests/get_document_drawing_objects_request.py create mode 100644 asposewordscloud/models/requests/get_document_field_names_request.py create mode 100644 asposewordscloud/models/requests/get_document_hyperlink_by_index_request.py create mode 100644 asposewordscloud/models/requests/get_document_hyperlinks_request.py create mode 100644 asposewordscloud/models/requests/get_document_paragraph_request.py create mode 100644 asposewordscloud/models/requests/get_document_paragraph_run_font_request.py create mode 100644 asposewordscloud/models/requests/get_document_paragraph_run_request.py create mode 100644 asposewordscloud/models/requests/get_document_paragraph_runs_request.py create mode 100644 asposewordscloud/models/requests/get_document_paragraphs_request.py create mode 100644 asposewordscloud/models/requests/get_document_properties_request.py create mode 100644 asposewordscloud/models/requests/get_document_property_request.py create mode 100644 asposewordscloud/models/requests/get_document_protection_request.py create mode 100644 asposewordscloud/models/requests/get_document_request.py create mode 100644 asposewordscloud/models/requests/get_document_statistics_request.py create mode 100644 asposewordscloud/models/requests/get_document_text_items_request.py create mode 100644 asposewordscloud/models/requests/get_document_with_format_request.py create mode 100644 asposewordscloud/models/requests/get_field_request.py create mode 100644 asposewordscloud/models/requests/get_fields_request.py create mode 100644 asposewordscloud/models/requests/get_footnote_request.py create mode 100644 asposewordscloud/models/requests/get_footnotes_request.py create mode 100644 asposewordscloud/models/requests/get_form_field_request.py create mode 100644 asposewordscloud/models/requests/get_form_fields_request.py create mode 100644 asposewordscloud/models/requests/get_header_footer_of_section_request.py create mode 100644 asposewordscloud/models/requests/get_header_footer_request.py create mode 100644 asposewordscloud/models/requests/get_header_footers_request.py create mode 100644 asposewordscloud/models/requests/get_office_math_object_request.py create mode 100644 asposewordscloud/models/requests/get_office_math_objects_request.py create mode 100644 asposewordscloud/models/requests/get_section_page_setup_request.py create mode 100644 asposewordscloud/models/requests/get_section_request.py create mode 100644 asposewordscloud/models/requests/get_sections_request.py create mode 100644 asposewordscloud/models/requests/get_table_cell_format_request.py create mode 100644 asposewordscloud/models/requests/get_table_cell_request.py create mode 100644 asposewordscloud/models/requests/get_table_properties_request.py create mode 100644 asposewordscloud/models/requests/get_table_request.py create mode 100644 asposewordscloud/models/requests/get_table_row_format_request.py create mode 100644 asposewordscloud/models/requests/get_table_row_request.py create mode 100644 asposewordscloud/models/requests/get_tables_request.py create mode 100644 asposewordscloud/models/requests/insert_table_cell_request.py create mode 100644 asposewordscloud/models/requests/insert_table_request.py create mode 100644 asposewordscloud/models/requests/insert_table_row_request.py create mode 100644 asposewordscloud/models/requests/post_append_document_request.py create mode 100644 asposewordscloud/models/requests/post_change_document_protection_request.py create mode 100644 asposewordscloud/models/requests/post_comment_request.py create mode 100644 asposewordscloud/models/requests/post_compare_document_request.py create mode 100644 asposewordscloud/models/requests/post_document_execute_mail_merge_request.py create mode 100644 asposewordscloud/models/requests/post_document_paragraph_run_font_request.py create mode 100644 asposewordscloud/models/requests/post_document_save_as_request.py create mode 100644 asposewordscloud/models/requests/post_drawing_object_request.py create mode 100644 asposewordscloud/models/requests/post_execute_template_request.py create mode 100644 asposewordscloud/models/requests/post_field_request.py create mode 100644 asposewordscloud/models/requests/post_footnote_request.py create mode 100644 asposewordscloud/models/requests/post_form_field_request.py create mode 100644 asposewordscloud/models/requests/post_insert_document_watermark_image_request.py create mode 100644 asposewordscloud/models/requests/post_insert_document_watermark_text_request.py create mode 100644 asposewordscloud/models/requests/post_insert_page_numbers_request.py create mode 100644 asposewordscloud/models/requests/post_load_web_document_request.py create mode 100644 asposewordscloud/models/requests/post_replace_text_request.py create mode 100644 asposewordscloud/models/requests/post_run_request.py create mode 100644 asposewordscloud/models/requests/post_split_document_request.py create mode 100644 asposewordscloud/models/requests/post_update_document_bookmark_request.py create mode 100644 asposewordscloud/models/requests/post_update_document_fields_request.py create mode 100644 asposewordscloud/models/requests/put_comment_request.py create mode 100644 asposewordscloud/models/requests/put_convert_document_request.py create mode 100644 asposewordscloud/models/requests/put_create_document_request.py create mode 100644 asposewordscloud/models/requests/put_document_field_names_request.py create mode 100644 asposewordscloud/models/requests/put_document_save_as_tiff_request.py create mode 100644 asposewordscloud/models/requests/put_drawing_object_request.py create mode 100644 asposewordscloud/models/requests/put_execute_mail_merge_online_request.py create mode 100644 asposewordscloud/models/requests/put_execute_template_online_request.py create mode 100644 asposewordscloud/models/requests/put_field_request.py create mode 100644 asposewordscloud/models/requests/put_footnote_request.py create mode 100644 asposewordscloud/models/requests/put_form_field_request.py create mode 100644 asposewordscloud/models/requests/put_header_footer_request.py create mode 100644 asposewordscloud/models/requests/put_paragraph_request.py create mode 100644 asposewordscloud/models/requests/put_protect_document_request.py create mode 100644 asposewordscloud/models/requests/put_run_request.py create mode 100644 asposewordscloud/models/requests/reject_all_revisions_request.py create mode 100644 asposewordscloud/models/requests/render_drawing_object_request.py create mode 100644 asposewordscloud/models/requests/render_math_object_request.py create mode 100644 asposewordscloud/models/requests/render_page_request.py create mode 100644 asposewordscloud/models/requests/render_paragraph_request.py create mode 100644 asposewordscloud/models/requests/render_table_request.py create mode 100644 asposewordscloud/models/requests/reset_cache_request.py create mode 100644 asposewordscloud/models/requests/search_request.py create mode 100644 asposewordscloud/models/requests/update_border_request.py create mode 100644 asposewordscloud/models/requests/update_section_page_setup_request.py create mode 100644 asposewordscloud/models/requests/update_table_cell_format_request.py create mode 100644 asposewordscloud/models/requests/update_table_properties_request.py create mode 100644 asposewordscloud/models/requests/update_table_row_format_request.py create mode 100644 asposewordscloud/models/revisions_modification_response.py create mode 100644 asposewordscloud/models/rtf_save_options_data.py create mode 100644 asposewordscloud/models/run.py create mode 100644 asposewordscloud/models/run_link.py create mode 100644 asposewordscloud/models/run_response.py create mode 100644 asposewordscloud/models/runs.py create mode 100644 asposewordscloud/models/runs_response.py create mode 100644 asposewordscloud/models/save_options_data.py create mode 100644 asposewordscloud/models/save_response.py create mode 100644 asposewordscloud/models/save_result.py create mode 100644 asposewordscloud/models/search_response.py create mode 100644 asposewordscloud/models/search_result.py create mode 100644 asposewordscloud/models/search_results_collection.py create mode 100644 asposewordscloud/models/section.py create mode 100644 asposewordscloud/models/section_link.py create mode 100644 asposewordscloud/models/section_link_collection.py create mode 100644 asposewordscloud/models/section_link_collection_response.py create mode 100644 asposewordscloud/models/section_page_setup_response.py create mode 100644 asposewordscloud/models/section_response.py create mode 100644 asposewordscloud/models/split_document_response.py create mode 100644 asposewordscloud/models/split_document_result.py create mode 100644 asposewordscloud/models/stat_data_response.py create mode 100644 asposewordscloud/models/story_child_nodes.py create mode 100644 asposewordscloud/models/string_format_data.py create mode 100644 asposewordscloud/models/svg_save_options_data.py create mode 100644 asposewordscloud/models/table.py create mode 100644 asposewordscloud/models/table_cell.py create mode 100644 asposewordscloud/models/table_cell_format.py create mode 100644 asposewordscloud/models/table_cell_format_response.py create mode 100644 asposewordscloud/models/table_cell_insert.py create mode 100644 asposewordscloud/models/table_cell_response.py create mode 100644 asposewordscloud/models/table_insert.py create mode 100644 asposewordscloud/models/table_link.py create mode 100644 asposewordscloud/models/table_link_collection.py create mode 100644 asposewordscloud/models/table_link_collection_response.py create mode 100644 asposewordscloud/models/table_properties.py create mode 100644 asposewordscloud/models/table_properties_response.py create mode 100644 asposewordscloud/models/table_response.py create mode 100644 asposewordscloud/models/table_row.py create mode 100644 asposewordscloud/models/table_row_format.py create mode 100644 asposewordscloud/models/table_row_format_response.py create mode 100644 asposewordscloud/models/table_row_insert.py create mode 100644 asposewordscloud/models/table_row_response.py create mode 100644 asposewordscloud/models/text_item.py create mode 100644 asposewordscloud/models/text_items.py create mode 100644 asposewordscloud/models/text_items_response.py create mode 100644 asposewordscloud/models/text_save_options_data.py create mode 100644 asposewordscloud/models/tiff_save_options_data.py create mode 100644 asposewordscloud/models/watermark_text.py create mode 100644 asposewordscloud/models/word_ml_save_options_data.py create mode 100644 asposewordscloud/models/words_api_error_response.py create mode 100644 asposewordscloud/models/words_api_link.py create mode 100644 asposewordscloud/models/xaml_fixed_save_options_data.py create mode 100644 asposewordscloud/models/xaml_flow_save_options_data.py create mode 100644 asposewordscloud/models/xml_color.py create mode 100644 asposewordscloud/models/xps_save_options_data.py create mode 100644 asposewordscloud/rest.py create mode 100644 docs/AsposeResponse.md create mode 100644 docs/AvailableFontsResponse.md create mode 100644 docs/BmpSaveOptionsData.md create mode 100644 docs/Bookmark.md create mode 100644 docs/BookmarkData.md create mode 100644 docs/BookmarkResponse.md create mode 100644 docs/Bookmarks.md create mode 100644 docs/BookmarksOutlineLevelData.md create mode 100644 docs/BookmarksResponse.md create mode 100644 docs/Border.md create mode 100644 docs/BorderResponse.md create mode 100644 docs/BordersCollection.md create mode 100644 docs/BordersResponse.md create mode 100644 docs/ClassificationResponse.md create mode 100644 docs/ClassificationResult.md create mode 100644 docs/Comment.md create mode 100644 docs/CommentLink.md create mode 100644 docs/CommentResponse.md create mode 100644 docs/CommentsCollection.md create mode 100644 docs/CommentsResponse.md create mode 100644 docs/CompareData.md create mode 100644 docs/DocSaveOptionsData.md create mode 100644 docs/Document.md create mode 100644 docs/DocumentEntry.md create mode 100644 docs/DocumentEntryList.md create mode 100644 docs/DocumentPosition.md create mode 100644 docs/DocumentProperties.md create mode 100644 docs/DocumentPropertiesResponse.md create mode 100644 docs/DocumentProperty.md create mode 100644 docs/DocumentPropertyResponse.md create mode 100644 docs/DocumentResponse.md create mode 100644 docs/DocumentStatData.md create mode 100644 docs/DownsampleOptionsData.md create mode 100644 docs/DrawingObject.md create mode 100644 docs/DrawingObjectCollection.md create mode 100644 docs/DrawingObjectLink.md create mode 100644 docs/DrawingObjectResponse.md create mode 100644 docs/DrawingObjectsResponse.md create mode 100644 docs/EmfSaveOptionsData.md create mode 100644 docs/EpubSaveOptionsData.md create mode 100644 docs/Field.md create mode 100644 docs/FieldCollection.md create mode 100644 docs/FieldLink.md create mode 100644 docs/FieldNames.md create mode 100644 docs/FieldNamesResponse.md create mode 100644 docs/FieldResponse.md create mode 100644 docs/FieldsResponse.md create mode 100644 docs/FileLink.md create mode 100644 docs/FixedPageSaveOptionsData.md create mode 100644 docs/Font.md create mode 100644 docs/FontInfo.md create mode 100644 docs/FontResponse.md create mode 100644 docs/Footnote.md create mode 100644 docs/FootnoteCollection.md create mode 100644 docs/FootnoteLink.md create mode 100644 docs/FootnoteResponse.md create mode 100644 docs/FootnotesResponse.md create mode 100644 docs/FootnotesStatData.md create mode 100644 docs/FormField.md create mode 100644 docs/FormFieldCheckbox.md create mode 100644 docs/FormFieldCollection.md create mode 100644 docs/FormFieldDropDown.md create mode 100644 docs/FormFieldResponse.md create mode 100644 docs/FormFieldTextInput.md create mode 100644 docs/FormFieldsResponse.md create mode 100644 docs/GifSaveOptionsData.md create mode 100644 docs/GraphicsQualityOptionsData.md create mode 100644 docs/HeaderFooter.md create mode 100644 docs/HeaderFooterLink.md create mode 100644 docs/HeaderFooterLinkCollection.md create mode 100644 docs/HeaderFooterResponse.md create mode 100644 docs/HeaderFootersResponse.md create mode 100644 docs/HtmlFixedSaveOptionsData.md create mode 100644 docs/HtmlSaveOptionsData.md create mode 100644 docs/Hyperlink.md create mode 100644 docs/HyperlinkResponse.md create mode 100644 docs/Hyperlinks.md create mode 100644 docs/HyperlinksResponse.md create mode 100644 docs/ImageSaveOptionsData.md create mode 100644 docs/JpegSaveOptionsData.md create mode 100644 docs/Link.md create mode 100644 docs/LinkElement.md create mode 100644 docs/LoadWebDocumentData.md create mode 100644 docs/MetafileRenderingOptionsData.md create mode 100644 docs/MhtmlSaveOptionsData.md create mode 100644 docs/ModificationOperationResult.md create mode 100644 docs/NodeLink.md create mode 100644 docs/OdtSaveOptionsData.md create mode 100644 docs/OfficeMathLink.md create mode 100644 docs/OfficeMathObject.md create mode 100644 docs/OfficeMathObjectResponse.md create mode 100644 docs/OfficeMathObjectsCollection.md create mode 100644 docs/OfficeMathObjectsResponse.md create mode 100644 docs/OoxmlSaveOptionsData.md create mode 100644 docs/OutlineOptionsData.md create mode 100644 docs/PageNumber.md create mode 100644 docs/PageSetup.md create mode 100644 docs/PageStatData.md create mode 100644 docs/Paragraph.md create mode 100644 docs/ParagraphInsert.md create mode 100644 docs/ParagraphLink.md create mode 100644 docs/ParagraphLinkCollection.md create mode 100644 docs/ParagraphLinkCollectionResponse.md create mode 100644 docs/ParagraphResponse.md create mode 100644 docs/PclSaveOptionsData.md create mode 100644 docs/PdfDigitalSignatureDetailsData.md create mode 100644 docs/PdfEncryptionDetailsData.md create mode 100644 docs/PdfSaveOptionsData.md create mode 100644 docs/PngSaveOptionsData.md create mode 100644 docs/PreferredWidth.md create mode 100644 docs/ProtectionData.md create mode 100644 docs/ProtectionDataResponse.md create mode 100644 docs/ProtectionRequest.md create mode 100644 docs/ProtectionResponse.md create mode 100644 docs/PsSaveOptionsData.md create mode 100644 docs/ReplaceTextRequest.md create mode 100644 docs/ReplaceTextResponse.md create mode 100644 docs/RevisionsModificationResponse.md create mode 100644 docs/RtfSaveOptionsData.md create mode 100644 docs/Run.md create mode 100644 docs/RunLink.md create mode 100644 docs/RunResponse.md create mode 100644 docs/Runs.md create mode 100644 docs/RunsResponse.md create mode 100644 docs/SaveOptionsData.md create mode 100644 docs/SaveResponse.md create mode 100644 docs/SaveResult.md create mode 100644 docs/SearchResponse.md create mode 100644 docs/SearchResult.md create mode 100644 docs/SearchResultsCollection.md create mode 100644 docs/Section.md create mode 100644 docs/SectionLink.md create mode 100644 docs/SectionLinkCollection.md create mode 100644 docs/SectionLinkCollectionResponse.md create mode 100644 docs/SectionPageSetupResponse.md create mode 100644 docs/SectionResponse.md create mode 100644 docs/SplitDocumentResponse.md create mode 100644 docs/SplitDocumentResult.md create mode 100644 docs/StatDataResponse.md create mode 100644 docs/StoryChildNodes.md create mode 100644 docs/StringFormatData.md create mode 100644 docs/SvgSaveOptionsData.md create mode 100644 docs/Table.md create mode 100644 docs/TableCell.md create mode 100644 docs/TableCellFormat.md create mode 100644 docs/TableCellFormatResponse.md create mode 100644 docs/TableCellInsert.md create mode 100644 docs/TableCellResponse.md create mode 100644 docs/TableInsert.md create mode 100644 docs/TableLink.md create mode 100644 docs/TableLinkCollection.md create mode 100644 docs/TableLinkCollectionResponse.md create mode 100644 docs/TableProperties.md create mode 100644 docs/TablePropertiesResponse.md create mode 100644 docs/TableResponse.md create mode 100644 docs/TableRow.md create mode 100644 docs/TableRowFormat.md create mode 100644 docs/TableRowFormatResponse.md create mode 100644 docs/TableRowInsert.md create mode 100644 docs/TableRowResponse.md create mode 100644 docs/TextItem.md create mode 100644 docs/TextItems.md create mode 100644 docs/TextItemsResponse.md create mode 100644 docs/TextSaveOptionsData.md create mode 100644 docs/TiffSaveOptionsData.md create mode 100644 docs/WatermarkText.md create mode 100644 docs/WordMLSaveOptionsData.md create mode 100644 docs/WordsApi.md create mode 100644 docs/WordsApiErrorResponse.md create mode 100644 docs/WordsApiLink.md create mode 100644 docs/XamlFixedSaveOptionsData.md create mode 100644 docs/XamlFlowSaveOptionsData.md create mode 100644 docs/XmlColor.md create mode 100644 docs/XpsSaveOptionsData.md create mode 100644 git_push.sh create mode 100644 requirements.txt create mode 100644 scripts/runTests.bat create mode 100644 setup.py create mode 100644 test-requirements.txt create mode 100644 test.sh create mode 100644 test/Common/__init__.py create mode 100644 test/Common/test_api_coverage.py create mode 100644 test/Common/test_error_handling.py create mode 100644 test/Common/test_font_cache.py create mode 100644 test/Document/__init__.py create mode 100644 test/Document/test_document.py create mode 100644 test/DocumentActions/__init__.py create mode 100644 test/DocumentActions/test_append_document.py create mode 100644 test/DocumentActions/test_classification.py create mode 100644 test/DocumentActions/test_compare_document.py create mode 100644 test/DocumentActions/test_convert_document.py create mode 100644 test/DocumentActions/test_document_protection.py create mode 100644 test/DocumentActions/test_document_statistics.py create mode 100644 test/DocumentActions/test_execute_mail_merge.py create mode 100644 test/DocumentActions/test_execute_template.py create mode 100644 test/DocumentActions/test_load_web_document.py create mode 100644 test/DocumentActions/test_mail_merge_fields.py create mode 100644 test/DocumentActions/test_revisions.py create mode 100644 test/DocumentActions/test_split_document.py create mode 100644 test/DocumentElements/__init__.py create mode 100644 test/DocumentElements/test_bookmarks.py create mode 100644 test/DocumentElements/test_comments.py create mode 100644 test/DocumentElements/test_document_properties.py create mode 100644 test/DocumentElements/test_drawing_objects.py create mode 100644 test/DocumentElements/test_fields.py create mode 100644 test/DocumentElements/test_footnote.py create mode 100644 test/DocumentElements/test_form_field.py create mode 100644 test/DocumentElements/test_header_footer.py create mode 100644 test/DocumentElements/test_hyperlinks.py create mode 100644 test/DocumentElements/test_macros.py create mode 100644 test/DocumentElements/test_math_objects.py create mode 100644 test/DocumentElements/test_pages.py create mode 100644 test/DocumentElements/test_paragraphs.py create mode 100644 test/DocumentElements/test_runs.py create mode 100644 test/DocumentElements/test_sections.py create mode 100644 test/DocumentElements/test_tables.py create mode 100644 test/DocumentElements/test_text.py create mode 100644 test/DocumentElements/test_watermarks.py create mode 100644 test/__init__.py create mode 100644 test/base_test_context.py create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index 894a44cc..b30b1163 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ __pycache__/ # Distribution / packaging .Python +env/ build/ develop-eggs/ dist/ @@ -19,11 +20,10 @@ lib64/ parts/ sdist/ var/ -wheels/ *.egg-info/ .installed.cfg *.egg -MANIFEST +.idea/* # PyInstaller # Usually these files are written by a python script from a template @@ -43,9 +43,10 @@ htmlcov/ .cache nosetests.xml coverage.xml -*.cover +*,cover .hypothesis/ -.pytest_cache/ +venv/ +.python-version # Translations *.mo @@ -53,15 +54,6 @@ coverage.xml # Django stuff: *.log -local_settings.py -db.sqlite3 - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy # Sphinx documentation docs/_build/ @@ -69,36 +61,5 @@ docs/_build/ # PyBuilder target/ -# Jupyter Notebook +#Ipython Notebook .ipynb_checkpoints - -# pyenv -.python-version - -# celery beat schedule file -celerybeat-schedule - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ diff --git a/.swagger-codegen-ignore b/.swagger-codegen-ignore new file mode 100644 index 00000000..c5fa491b --- /dev/null +++ b/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/.swagger-codegen/VERSION b/.swagger-codegen/VERSION new file mode 100644 index 00000000..f9f7450d --- /dev/null +++ b/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.3.0-SNAPSHOT \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..86211e2d --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +# ref: https://docs.travis-ci.com/user/languages/python +language: python +python: + - "2.7" + - "3.2" + - "3.3" + - "3.4" + - "3.5" + #- "3.5-dev" # 3.5 development branch + #- "nightly" # points to the latest development branch e.g. 3.6-dev +# command to install dependencies +install: "pip install -r requirements.txt" +# command to run tests +script: nosetests diff --git a/README.md b/README.md index 9a15f23a..2c40effc 100644 --- a/README.md +++ b/README.md @@ -1 +1,402 @@ -# aspose-words-cloud-python \ No newline at end of file +# asposewordscloud +No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + +This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: + +- API version: 18.5.0 +- Package version: 18.6 +- Build package: io.swagger.codegen.languages.PythonClientCodegen + +## Requirements. + +Python 2.7 and 3.4+ + +## Installation & Usage +### pip install + +If the python package is hosted on Github, you can install directly from Github + +```sh +pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git +``` +(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`) + +Then import the package: +```python +import asposewordscloud +``` + +### Setuptools + +Install via [Setuptools](http://pypi.python.org/pypi/setuptools). + +```sh +python setup.py install --user +``` +(or `sudo python setup.py install` to install the package for all users) + +Then import the package: +```python +import asposewordscloud +``` + +## Getting Started + +Please follow the [installation procedure](#installation--usage) and then run the following: + +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Accept all revisions in document + api_response = api_instance.accept_all_revisions(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->accept_all_revisions: %s\n" % e) + +``` + +## Documentation for API Endpoints + +All URIs are relative to *https://localhost/v1.1* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*WordsApi* | [**accept_all_revisions**](docs/WordsApi.md#accept_all_revisions) | **POST** /words/{name}/revisions/acceptAll | Accept all revisions in document +*WordsApi* | [**classify**](docs/WordsApi.md#classify) | **PUT** /words/classify | Classify raw text. +*WordsApi* | [**classify_document**](docs/WordsApi.md#classify_document) | **GET** /words/{documentName}/classify | Classify document. +*WordsApi* | [**create_or_update_document_property**](docs/WordsApi.md#create_or_update_document_property) | **POST** /words/{name}/documentProperties/{propertyName} | Add new or update existing document property. +*WordsApi* | [**delete_border**](docs/WordsApi.md#delete_border) | **DELETE** /words/{name}/{nodePath}/borders/{index} | Resets border properties to default values. +*WordsApi* | [**delete_borders**](docs/WordsApi.md#delete_borders) | **DELETE** /words/{name}/{nodePath}/borders | Resets borders properties to default values. +*WordsApi* | [**delete_comment**](docs/WordsApi.md#delete_comment) | **DELETE** /words/{name}/comments/{commentIndex} | Remove comment from document. +*WordsApi* | [**delete_document_macros**](docs/WordsApi.md#delete_document_macros) | **DELETE** /words/{name}/macros | Remove macros from document. +*WordsApi* | [**delete_document_property**](docs/WordsApi.md#delete_document_property) | **DELETE** /words/{name}/documentProperties/{propertyName} | Delete document property. +*WordsApi* | [**delete_document_watermark**](docs/WordsApi.md#delete_document_watermark) | **DELETE** /words/{name}/watermark | Delete watermark (for deleting last watermark from the document). +*WordsApi* | [**delete_drawing_object**](docs/WordsApi.md#delete_drawing_object) | **DELETE** /words/{name}/{nodePath}/drawingObjects/{index} | Removes drawing object from document. +*WordsApi* | [**delete_field**](docs/WordsApi.md#delete_field) | **DELETE** /words/{name}/{nodePath}/fields/{index} | Delete field from document. +*WordsApi* | [**delete_fields**](docs/WordsApi.md#delete_fields) | **DELETE** /words/{name}/{nodePath}/fields | Remove fields from section paragraph. +*WordsApi* | [**delete_footnote**](docs/WordsApi.md#delete_footnote) | **DELETE** /words/{name}/{nodePath}/footnotes/{index} | Removes footnote from document. +*WordsApi* | [**delete_form_field**](docs/WordsApi.md#delete_form_field) | **DELETE** /words/{name}/{nodePath}/formfields/{index} | Removes form field from document. +*WordsApi* | [**delete_header_footer**](docs/WordsApi.md#delete_header_footer) | **DELETE** /words/{name}/{sectionPath}/headersfooters/{index} | Delete header/footer from document. +*WordsApi* | [**delete_headers_footers**](docs/WordsApi.md#delete_headers_footers) | **DELETE** /words/{name}/{sectionPath}/headersfooters | Delete document headers and footers. +*WordsApi* | [**delete_office_math_object**](docs/WordsApi.md#delete_office_math_object) | **DELETE** /words/{name}/{nodePath}/OfficeMathObjects/{index} | Removes OfficeMath object from document. +*WordsApi* | [**delete_paragraph**](docs/WordsApi.md#delete_paragraph) | **DELETE** /words/{name}/{nodePath}/paragraphs/{index} | Remove paragraph from section. +*WordsApi* | [**delete_run**](docs/WordsApi.md#delete_run) | **DELETE** /words/{name}/{paragraphPath}/runs/{index} | Removes run from document. +*WordsApi* | [**delete_table**](docs/WordsApi.md#delete_table) | **DELETE** /words/{name}/{nodePath}/tables/{index} | Delete a table. +*WordsApi* | [**delete_table_cell**](docs/WordsApi.md#delete_table_cell) | **DELETE** /words/{name}/{tableRowPath}/cells/{index} | Delete a table cell. +*WordsApi* | [**delete_table_row**](docs/WordsApi.md#delete_table_row) | **DELETE** /words/{name}/{tablePath}/rows/{index} | Delete a table row. +*WordsApi* | [**delete_unprotect_document**](docs/WordsApi.md#delete_unprotect_document) | **DELETE** /words/{name}/protection | Unprotect document. +*WordsApi* | [**get_border**](docs/WordsApi.md#get_border) | **GET** /words/{name}/{nodePath}/borders/{index} | Return a border. +*WordsApi* | [**get_borders**](docs/WordsApi.md#get_borders) | **GET** /words/{name}/{nodePath}/borders | Return a collection of borders. +*WordsApi* | [**get_comment**](docs/WordsApi.md#get_comment) | **GET** /words/{name}/comments/{commentIndex} | Get comment from document. +*WordsApi* | [**get_comments**](docs/WordsApi.md#get_comments) | **GET** /words/{name}/comments | Get comments from document. +*WordsApi* | [**get_document**](docs/WordsApi.md#get_document) | **GET** /words/{documentName} | Read document common info. +*WordsApi* | [**get_document_bookmark_by_name**](docs/WordsApi.md#get_document_bookmark_by_name) | **GET** /words/{name}/bookmarks/{bookmarkName} | Read document bookmark data by its name. +*WordsApi* | [**get_document_bookmarks**](docs/WordsApi.md#get_document_bookmarks) | **GET** /words/{name}/bookmarks | Read document bookmarks common info. +*WordsApi* | [**get_document_drawing_object_by_index**](docs/WordsApi.md#get_document_drawing_object_by_index) | **GET** /words/{name}/{nodePath}/drawingObjects/{index} | Read document drawing object common info by its index or convert to format specified. +*WordsApi* | [**get_document_drawing_object_image_data**](docs/WordsApi.md#get_document_drawing_object_image_data) | **GET** /words/{name}/{nodePath}/drawingObjects/{index}/imageData | Read drawing object image data. +*WordsApi* | [**get_document_drawing_object_ole_data**](docs/WordsApi.md#get_document_drawing_object_ole_data) | **GET** /words/{name}/{nodePath}/drawingObjects/{index}/oleData | Get drawing object OLE data. +*WordsApi* | [**get_document_drawing_objects**](docs/WordsApi.md#get_document_drawing_objects) | **GET** /words/{name}/{nodePath}/drawingObjects | Read document drawing objects common info. +*WordsApi* | [**get_document_field_names**](docs/WordsApi.md#get_document_field_names) | **GET** /words/{name}/mailMergeFieldNames | Read document field names. +*WordsApi* | [**get_document_hyperlink_by_index**](docs/WordsApi.md#get_document_hyperlink_by_index) | **GET** /words/{name}/hyperlinks/{hyperlinkIndex} | Read document hyperlink by its index. +*WordsApi* | [**get_document_hyperlinks**](docs/WordsApi.md#get_document_hyperlinks) | **GET** /words/{name}/hyperlinks | Read document hyperlinks common info. +*WordsApi* | [**get_document_paragraph**](docs/WordsApi.md#get_document_paragraph) | **GET** /words/{name}/{nodePath}/paragraphs/{index} | This resource represents one of the paragraphs contained in the document. +*WordsApi* | [**get_document_paragraph_run**](docs/WordsApi.md#get_document_paragraph_run) | **GET** /words/{name}/{paragraphPath}/runs/{index} | This resource represents run of text contained in the document. +*WordsApi* | [**get_document_paragraph_run_font**](docs/WordsApi.md#get_document_paragraph_run_font) | **GET** /words/{name}/{paragraphPath}/runs/{index}/font | This resource represents font of run. +*WordsApi* | [**get_document_paragraph_runs**](docs/WordsApi.md#get_document_paragraph_runs) | **GET** /words/{name}/{paragraphPath}/runs | This resource represents collection of runs in the paragraph. +*WordsApi* | [**get_document_paragraphs**](docs/WordsApi.md#get_document_paragraphs) | **GET** /words/{name}/{nodePath}/paragraphs | Return a list of paragraphs that are contained in the document. +*WordsApi* | [**get_document_properties**](docs/WordsApi.md#get_document_properties) | **GET** /words/{name}/documentProperties | Read document properties info. +*WordsApi* | [**get_document_property**](docs/WordsApi.md#get_document_property) | **GET** /words/{name}/documentProperties/{propertyName} | Read document property info by the property name. +*WordsApi* | [**get_document_protection**](docs/WordsApi.md#get_document_protection) | **GET** /words/{name}/protection | Read document protection common info. +*WordsApi* | [**get_document_statistics**](docs/WordsApi.md#get_document_statistics) | **GET** /words/{name}/statistics | Read document statistics. +*WordsApi* | [**get_document_text_items**](docs/WordsApi.md#get_document_text_items) | **GET** /words/{name}/textItems | Read document text items. +*WordsApi* | [**get_document_with_format**](docs/WordsApi.md#get_document_with_format) | **GET** /words/{name} | Export the document into the specified format. +*WordsApi* | [**get_field**](docs/WordsApi.md#get_field) | **GET** /words/{name}/{nodePath}/fields/{index} | Get field from document. +*WordsApi* | [**get_fields**](docs/WordsApi.md#get_fields) | **GET** /words/{name}/{nodePath}/fields | Get fields from document. +*WordsApi* | [**get_footnote**](docs/WordsApi.md#get_footnote) | **GET** /words/{name}/{nodePath}/footnotes/{index} | Read footnote by index. +*WordsApi* | [**get_footnotes**](docs/WordsApi.md#get_footnotes) | **GET** /words/{name}/{nodePath}/footnotes | Get footnotes from document. +*WordsApi* | [**get_form_field**](docs/WordsApi.md#get_form_field) | **GET** /words/{name}/{nodePath}/formfields/{index} | Returns representation of an one of the form field. +*WordsApi* | [**get_form_fields**](docs/WordsApi.md#get_form_fields) | **GET** /words/{name}/{nodePath}/formfields | Get form fields from document. +*WordsApi* | [**get_header_footer**](docs/WordsApi.md#get_header_footer) | **GET** /words/{name}/headersfooters/{headerFooterIndex} | Return a header/footer that is contained in the document. +*WordsApi* | [**get_header_footer_of_section**](docs/WordsApi.md#get_header_footer_of_section) | **GET** /words/{name}/sections/{sectionIndex}/headersfooters/{headerFooterIndex} | Return a header/footer that is contained in the document. +*WordsApi* | [**get_header_footers**](docs/WordsApi.md#get_header_footers) | **GET** /words/{name}/{sectionPath}/headersfooters | Return a list of header/footers that are contained in the document. +*WordsApi* | [**get_office_math_object**](docs/WordsApi.md#get_office_math_object) | **GET** /words/{name}/{nodePath}/OfficeMathObjects/{index} | Read OfficeMath object by index. +*WordsApi* | [**get_office_math_objects**](docs/WordsApi.md#get_office_math_objects) | **GET** /words/{name}/{nodePath}/OfficeMathObjects | Get OfficeMath objects from document. +*WordsApi* | [**get_section**](docs/WordsApi.md#get_section) | **GET** /words/{name}/sections/{sectionIndex} | Get document section by index. +*WordsApi* | [**get_section_page_setup**](docs/WordsApi.md#get_section_page_setup) | **GET** /words/{name}/sections/{sectionIndex}/pageSetup | Get page setup of section. +*WordsApi* | [**get_sections**](docs/WordsApi.md#get_sections) | **GET** /words/{name}/sections | Return a list of sections that are contained in the document. +*WordsApi* | [**get_table**](docs/WordsApi.md#get_table) | **GET** /words/{name}/{nodePath}/tables/{index} | Return a table. +*WordsApi* | [**get_table_cell**](docs/WordsApi.md#get_table_cell) | **GET** /words/{name}/{tableRowPath}/cells/{index} | Return a table cell. +*WordsApi* | [**get_table_cell_format**](docs/WordsApi.md#get_table_cell_format) | **GET** /words/{name}/{tableRowPath}/cells/{index}/cellformat | Return a table cell format. +*WordsApi* | [**get_table_properties**](docs/WordsApi.md#get_table_properties) | **GET** /words/{name}/{nodePath}/tables/{index}/properties | Return a table properties. +*WordsApi* | [**get_table_row**](docs/WordsApi.md#get_table_row) | **GET** /words/{name}/{tablePath}/rows/{index} | Return a table row. +*WordsApi* | [**get_table_row_format**](docs/WordsApi.md#get_table_row_format) | **GET** /words/{name}/{tablePath}/rows/{index}/rowformat | Return a table row format. +*WordsApi* | [**get_tables**](docs/WordsApi.md#get_tables) | **GET** /words/{name}/{nodePath}/tables | Return a list of tables that are contained in the document. +*WordsApi* | [**insert_table**](docs/WordsApi.md#insert_table) | **PUT** /words/{name}/{nodePath}/tables | Adds table to document, returns added table's data. +*WordsApi* | [**insert_table_cell**](docs/WordsApi.md#insert_table_cell) | **PUT** /words/{name}/{tableRowPath}/cells | Adds table cell to table, returns added cell's data. +*WordsApi* | [**insert_table_row**](docs/WordsApi.md#insert_table_row) | **PUT** /words/{name}/{tablePath}/rows | Adds table row to table, returns added row's data. +*WordsApi* | [**post_append_document**](docs/WordsApi.md#post_append_document) | **POST** /words/{name}/appendDocument | Append documents to original document. +*WordsApi* | [**post_change_document_protection**](docs/WordsApi.md#post_change_document_protection) | **POST** /words/{name}/protection | Change document protection. +*WordsApi* | [**post_comment**](docs/WordsApi.md#post_comment) | **POST** /words/{name}/comments/{commentIndex} | Updates the comment, returns updated comment's data. +*WordsApi* | [**post_compare_document**](docs/WordsApi.md#post_compare_document) | **POST** /words/{name}/compareDocument | Compare document with original document. +*WordsApi* | [**post_document_execute_mail_merge**](docs/WordsApi.md#post_document_execute_mail_merge) | **POST** /words/{name}/executeMailMerge | Execute document mail merge operation. +*WordsApi* | [**post_document_paragraph_run_font**](docs/WordsApi.md#post_document_paragraph_run_font) | **POST** /words/{name}/{paragraphPath}/runs/{index}/font | Updates font properties, returns updated font data. +*WordsApi* | [**post_document_save_as**](docs/WordsApi.md#post_document_save_as) | **POST** /words/{name}/saveAs | Convert document to destination format with detailed settings and save result to storage. +*WordsApi* | [**post_drawing_object**](docs/WordsApi.md#post_drawing_object) | **POST** /words/{name}/{nodePath}/drawingObjects/{index} | Updates drawing object, returns updated drawing object's data. +*WordsApi* | [**post_execute_template**](docs/WordsApi.md#post_execute_template) | **POST** /words/{name}/executeTemplate | Populate document template with data. +*WordsApi* | [**post_field**](docs/WordsApi.md#post_field) | **POST** /words/{name}/{nodePath}/fields/{index} | Updates field's properties, returns updated field's data. +*WordsApi* | [**post_footnote**](docs/WordsApi.md#post_footnote) | **POST** /words/{name}/{nodePath}/footnotes/{index} | Updates footnote's properties, returns updated run's data. +*WordsApi* | [**post_form_field**](docs/WordsApi.md#post_form_field) | **POST** /words/{name}/{nodePath}/formfields/{index} | Updates properties of form field, returns updated form field. +*WordsApi* | [**post_insert_document_watermark_image**](docs/WordsApi.md#post_insert_document_watermark_image) | **POST** /words/{name}/watermark/insertImage | Insert document watermark image. +*WordsApi* | [**post_insert_document_watermark_text**](docs/WordsApi.md#post_insert_document_watermark_text) | **POST** /words/{name}/watermark/insertText | Insert document watermark text. +*WordsApi* | [**post_insert_page_numbers**](docs/WordsApi.md#post_insert_page_numbers) | **POST** /words/{name}/insertPageNumbers | Insert document page numbers. +*WordsApi* | [**post_load_web_document**](docs/WordsApi.md#post_load_web_document) | **POST** /words/loadWebDocument | Loads new document from web into the file with any supported format of data. +*WordsApi* | [**post_replace_text**](docs/WordsApi.md#post_replace_text) | **POST** /words/{name}/replaceText | Replace document text. +*WordsApi* | [**post_run**](docs/WordsApi.md#post_run) | **POST** /words/{name}/{paragraphPath}/runs/{index} | Updates run's properties, returns updated run's data. +*WordsApi* | [**post_split_document**](docs/WordsApi.md#post_split_document) | **POST** /words/{name}/split | Split document. +*WordsApi* | [**post_update_document_bookmark**](docs/WordsApi.md#post_update_document_bookmark) | **POST** /words/{name}/bookmarks/{bookmarkName} | Update document bookmark. +*WordsApi* | [**post_update_document_fields**](docs/WordsApi.md#post_update_document_fields) | **POST** /words/{name}/updateFields | Update (reevaluate) fields in document. +*WordsApi* | [**put_comment**](docs/WordsApi.md#put_comment) | **PUT** /words/{name}/comments | Adds comment to document, returns inserted comment's data. +*WordsApi* | [**put_convert_document**](docs/WordsApi.md#put_convert_document) | **PUT** /words/convert | Convert document from request content to format specified. +*WordsApi* | [**put_create_document**](docs/WordsApi.md#put_create_document) | **PUT** /words/create | Creates new document. Document is created with format which is recognized from file extensions. Supported extentions: \".doc\", \".docx\", \".docm\", \".dot\", \".dotm\", \".dotx\", \".flatopc\", \".fopc\", \".flatopc_macro\", \".fopc_macro\", \".flatopc_template\", \".fopc_template\", \".flatopc_template_macro\", \".fopc_template_macro\", \".wordml\", \".wml\", \".rtf\" +*WordsApi* | [**put_document_field_names**](docs/WordsApi.md#put_document_field_names) | **PUT** /words/mailMergeFieldNames | Read document field names. +*WordsApi* | [**put_document_save_as_tiff**](docs/WordsApi.md#put_document_save_as_tiff) | **PUT** /words/{name}/saveAs/tiff | Convert document to tiff with detailed settings and save result to storage. +*WordsApi* | [**put_drawing_object**](docs/WordsApi.md#put_drawing_object) | **PUT** /words/{name}/{nodePath}/drawingObjects | Adds drawing object to document, returns added drawing object's data. +*WordsApi* | [**put_execute_mail_merge_online**](docs/WordsApi.md#put_execute_mail_merge_online) | **PUT** /words/executeMailMerge | Execute document mail merge online. +*WordsApi* | [**put_execute_template_online**](docs/WordsApi.md#put_execute_template_online) | **PUT** /words/executeTemplate | Populate document template with data online. +*WordsApi* | [**put_field**](docs/WordsApi.md#put_field) | **PUT** /words/{name}/{nodePath}/fields | Adds field to document, returns inserted field's data. +*WordsApi* | [**put_footnote**](docs/WordsApi.md#put_footnote) | **PUT** /words/{name}/{nodePath}/footnotes | Adds footnote to document, returns added footnote's data. +*WordsApi* | [**put_form_field**](docs/WordsApi.md#put_form_field) | **PUT** /words/{name}/{nodePath}/formfields | Adds form field to paragraph, returns added form field's data. +*WordsApi* | [**put_header_footer**](docs/WordsApi.md#put_header_footer) | **PUT** /words/{name}/{sectionPath}/headersfooters | Insert to document header or footer. +*WordsApi* | [**put_paragraph**](docs/WordsApi.md#put_paragraph) | **PUT** /words/{name}/{nodePath}/paragraphs | Adds paragraph to document, returns added paragraph's data. +*WordsApi* | [**put_protect_document**](docs/WordsApi.md#put_protect_document) | **PUT** /words/{name}/protection | Protect document. +*WordsApi* | [**put_run**](docs/WordsApi.md#put_run) | **PUT** /words/{name}/{paragraphPath}/runs | Adds run to document, returns added paragraph's data. +*WordsApi* | [**reject_all_revisions**](docs/WordsApi.md#reject_all_revisions) | **POST** /words/{name}/revisions/rejectAll | Reject all revisions in document +*WordsApi* | [**render_drawing_object**](docs/WordsApi.md#render_drawing_object) | **GET** /words/{name}/{nodePath}/drawingObjects/{index}/render | Renders drawing object to specified format. +*WordsApi* | [**render_math_object**](docs/WordsApi.md#render_math_object) | **GET** /words/{name}/{nodePath}/OfficeMathObjects/{index}/render | Renders math object to specified format. +*WordsApi* | [**render_page**](docs/WordsApi.md#render_page) | **GET** /words/{name}/pages/{pageIndex}/render | Renders page to specified format. +*WordsApi* | [**render_paragraph**](docs/WordsApi.md#render_paragraph) | **GET** /words/{name}/{nodePath}/paragraphs/{index}/render | Renders paragraph to specified format. +*WordsApi* | [**render_table**](docs/WordsApi.md#render_table) | **GET** /words/{name}/{nodePath}/tables/{index}/render | Renders table to specified format. +*WordsApi* | [**reset_cache**](docs/WordsApi.md#reset_cache) | **DELETE** /words/fonts/cache | Resets font's cache. +*WordsApi* | [**search**](docs/WordsApi.md#search) | **GET** /words/{name}/search | Search text in document. +*WordsApi* | [**update_border**](docs/WordsApi.md#update_border) | **POST** /words/{name}/{nodePath}/borders/{index} | Updates border properties. +*WordsApi* | [**update_section_page_setup**](docs/WordsApi.md#update_section_page_setup) | **POST** /words/{name}/sections/{sectionIndex}/pageSetup | Update page setup of section. +*WordsApi* | [**update_table_cell_format**](docs/WordsApi.md#update_table_cell_format) | **POST** /words/{name}/{tableRowPath}/cells/{index}/cellformat | Updates a table cell format. +*WordsApi* | [**update_table_properties**](docs/WordsApi.md#update_table_properties) | **POST** /words/{name}/{nodePath}/tables/{index}/properties | Updates a table properties. +*WordsApi* | [**update_table_row_format**](docs/WordsApi.md#update_table_row_format) | **POST** /words/{name}/{tablePath}/rows/{index}/rowformat | Updates a table row format. + + +## Documentation For Models + + - [AsposeResponse](docs/AsposeResponse.md) + - [BookmarkData](docs/BookmarkData.md) + - [BookmarksOutlineLevelData](docs/BookmarksOutlineLevelData.md) + - [ClassificationResult](docs/ClassificationResult.md) + - [CompareData](docs/CompareData.md) + - [Document](docs/Document.md) + - [DocumentEntry](docs/DocumentEntry.md) + - [DocumentEntryList](docs/DocumentEntryList.md) + - [DocumentPosition](docs/DocumentPosition.md) + - [DocumentStatData](docs/DocumentStatData.md) + - [DownsampleOptionsData](docs/DownsampleOptionsData.md) + - [FootnotesStatData](docs/FootnotesStatData.md) + - [GraphicsQualityOptionsData](docs/GraphicsQualityOptionsData.md) + - [Link](docs/Link.md) + - [LinkElement](docs/LinkElement.md) + - [LoadWebDocumentData](docs/LoadWebDocumentData.md) + - [MetafileRenderingOptionsData](docs/MetafileRenderingOptionsData.md) + - [ModificationOperationResult](docs/ModificationOperationResult.md) + - [OutlineOptionsData](docs/OutlineOptionsData.md) + - [PageNumber](docs/PageNumber.md) + - [PageStatData](docs/PageStatData.md) + - [ParagraphInsert](docs/ParagraphInsert.md) + - [PdfDigitalSignatureDetailsData](docs/PdfDigitalSignatureDetailsData.md) + - [PdfEncryptionDetailsData](docs/PdfEncryptionDetailsData.md) + - [PreferredWidth](docs/PreferredWidth.md) + - [ProtectionData](docs/ProtectionData.md) + - [ProtectionRequest](docs/ProtectionRequest.md) + - [ReplaceTextRequest](docs/ReplaceTextRequest.md) + - [SaveOptionsData](docs/SaveOptionsData.md) + - [SaveResult](docs/SaveResult.md) + - [SearchResult](docs/SearchResult.md) + - [SplitDocumentResult](docs/SplitDocumentResult.md) + - [StoryChildNodes](docs/StoryChildNodes.md) + - [StringFormatData](docs/StringFormatData.md) + - [TableCellInsert](docs/TableCellInsert.md) + - [TableInsert](docs/TableInsert.md) + - [TableRowInsert](docs/TableRowInsert.md) + - [WatermarkText](docs/WatermarkText.md) + - [XmlColor](docs/XmlColor.md) + - [Bookmark](docs/Bookmark.md) + - [BookmarkResponse](docs/BookmarkResponse.md) + - [Bookmarks](docs/Bookmarks.md) + - [BookmarksResponse](docs/BookmarksResponse.md) + - [Border](docs/Border.md) + - [BorderResponse](docs/BorderResponse.md) + - [BordersCollection](docs/BordersCollection.md) + - [BordersResponse](docs/BordersResponse.md) + - [ClassificationResponse](docs/ClassificationResponse.md) + - [CommentLink](docs/CommentLink.md) + - [CommentResponse](docs/CommentResponse.md) + - [CommentsCollection](docs/CommentsCollection.md) + - [CommentsResponse](docs/CommentsResponse.md) + - [DocSaveOptionsData](docs/DocSaveOptionsData.md) + - [DocumentProperties](docs/DocumentProperties.md) + - [DocumentPropertiesResponse](docs/DocumentPropertiesResponse.md) + - [DocumentProperty](docs/DocumentProperty.md) + - [DocumentPropertyResponse](docs/DocumentPropertyResponse.md) + - [DocumentResponse](docs/DocumentResponse.md) + - [DrawingObjectCollection](docs/DrawingObjectCollection.md) + - [DrawingObjectResponse](docs/DrawingObjectResponse.md) + - [DrawingObjectsResponse](docs/DrawingObjectsResponse.md) + - [FieldCollection](docs/FieldCollection.md) + - [FieldNames](docs/FieldNames.md) + - [FieldNamesResponse](docs/FieldNamesResponse.md) + - [FieldResponse](docs/FieldResponse.md) + - [FieldsResponse](docs/FieldsResponse.md) + - [FileLink](docs/FileLink.md) + - [FixedPageSaveOptionsData](docs/FixedPageSaveOptionsData.md) + - [Font](docs/Font.md) + - [FontResponse](docs/FontResponse.md) + - [FootnoteCollection](docs/FootnoteCollection.md) + - [FootnoteResponse](docs/FootnoteResponse.md) + - [FootnotesResponse](docs/FootnotesResponse.md) + - [FormFieldCollection](docs/FormFieldCollection.md) + - [FormFieldResponse](docs/FormFieldResponse.md) + - [FormFieldsResponse](docs/FormFieldsResponse.md) + - [HeaderFooterLink](docs/HeaderFooterLink.md) + - [HeaderFooterLinkCollection](docs/HeaderFooterLinkCollection.md) + - [HeaderFooterResponse](docs/HeaderFooterResponse.md) + - [HeaderFootersResponse](docs/HeaderFootersResponse.md) + - [HtmlSaveOptionsData](docs/HtmlSaveOptionsData.md) + - [Hyperlink](docs/Hyperlink.md) + - [HyperlinkResponse](docs/HyperlinkResponse.md) + - [Hyperlinks](docs/Hyperlinks.md) + - [HyperlinksResponse](docs/HyperlinksResponse.md) + - [NodeLink](docs/NodeLink.md) + - [OdtSaveOptionsData](docs/OdtSaveOptionsData.md) + - [OfficeMathObjectResponse](docs/OfficeMathObjectResponse.md) + - [OfficeMathObjectsCollection](docs/OfficeMathObjectsCollection.md) + - [OfficeMathObjectsResponse](docs/OfficeMathObjectsResponse.md) + - [OoxmlSaveOptionsData](docs/OoxmlSaveOptionsData.md) + - [PageSetup](docs/PageSetup.md) + - [ParagraphLinkCollection](docs/ParagraphLinkCollection.md) + - [ParagraphLinkCollectionResponse](docs/ParagraphLinkCollectionResponse.md) + - [ParagraphResponse](docs/ParagraphResponse.md) + - [ProtectionDataResponse](docs/ProtectionDataResponse.md) + - [ProtectionResponse](docs/ProtectionResponse.md) + - [ReplaceTextResponse](docs/ReplaceTextResponse.md) + - [RevisionsModificationResponse](docs/RevisionsModificationResponse.md) + - [RtfSaveOptionsData](docs/RtfSaveOptionsData.md) + - [RunResponse](docs/RunResponse.md) + - [Runs](docs/Runs.md) + - [RunsResponse](docs/RunsResponse.md) + - [SaveResponse](docs/SaveResponse.md) + - [SearchResponse](docs/SearchResponse.md) + - [SearchResultsCollection](docs/SearchResultsCollection.md) + - [Section](docs/Section.md) + - [SectionLink](docs/SectionLink.md) + - [SectionLinkCollection](docs/SectionLinkCollection.md) + - [SectionLinkCollectionResponse](docs/SectionLinkCollectionResponse.md) + - [SectionPageSetupResponse](docs/SectionPageSetupResponse.md) + - [SectionResponse](docs/SectionResponse.md) + - [SplitDocumentResponse](docs/SplitDocumentResponse.md) + - [StatDataResponse](docs/StatDataResponse.md) + - [TableCellFormat](docs/TableCellFormat.md) + - [TableCellFormatResponse](docs/TableCellFormatResponse.md) + - [TableCellResponse](docs/TableCellResponse.md) + - [TableLinkCollection](docs/TableLinkCollection.md) + - [TableLinkCollectionResponse](docs/TableLinkCollectionResponse.md) + - [TableProperties](docs/TableProperties.md) + - [TablePropertiesResponse](docs/TablePropertiesResponse.md) + - [TableResponse](docs/TableResponse.md) + - [TableRowFormat](docs/TableRowFormat.md) + - [TableRowFormatResponse](docs/TableRowFormatResponse.md) + - [TableRowResponse](docs/TableRowResponse.md) + - [TextItem](docs/TextItem.md) + - [TextItems](docs/TextItems.md) + - [TextItemsResponse](docs/TextItemsResponse.md) + - [TextSaveOptionsData](docs/TextSaveOptionsData.md) + - [WordMLSaveOptionsData](docs/WordMLSaveOptionsData.md) + - [WordsApiErrorResponse](docs/WordsApiErrorResponse.md) + - [WordsApiLink](docs/WordsApiLink.md) + - [XamlFlowSaveOptionsData](docs/XamlFlowSaveOptionsData.md) + - [Comment](docs/Comment.md) + - [DrawingObjectLink](docs/DrawingObjectLink.md) + - [EpubSaveOptionsData](docs/EpubSaveOptionsData.md) + - [FieldLink](docs/FieldLink.md) + - [FootnoteLink](docs/FootnoteLink.md) + - [FormField](docs/FormField.md) + - [HeaderFooter](docs/HeaderFooter.md) + - [HtmlFixedSaveOptionsData](docs/HtmlFixedSaveOptionsData.md) + - [ImageSaveOptionsData](docs/ImageSaveOptionsData.md) + - [MhtmlSaveOptionsData](docs/MhtmlSaveOptionsData.md) + - [OfficeMathLink](docs/OfficeMathLink.md) + - [Paragraph](docs/Paragraph.md) + - [ParagraphLink](docs/ParagraphLink.md) + - [PclSaveOptionsData](docs/PclSaveOptionsData.md) + - [PdfSaveOptionsData](docs/PdfSaveOptionsData.md) + - [PsSaveOptionsData](docs/PsSaveOptionsData.md) + - [RunLink](docs/RunLink.md) + - [SvgSaveOptionsData](docs/SvgSaveOptionsData.md) + - [Table](docs/Table.md) + - [TableCell](docs/TableCell.md) + - [TableLink](docs/TableLink.md) + - [TableRow](docs/TableRow.md) + - [XamlFixedSaveOptionsData](docs/XamlFixedSaveOptionsData.md) + - [XpsSaveOptionsData](docs/XpsSaveOptionsData.md) + - [BmpSaveOptionsData](docs/BmpSaveOptionsData.md) + - [DrawingObject](docs/DrawingObject.md) + - [EmfSaveOptionsData](docs/EmfSaveOptionsData.md) + - [Field](docs/Field.md) + - [Footnote](docs/Footnote.md) + - [FormFieldCheckbox](docs/FormFieldCheckbox.md) + - [FormFieldDropDown](docs/FormFieldDropDown.md) + - [FormFieldTextInput](docs/FormFieldTextInput.md) + - [GifSaveOptionsData](docs/GifSaveOptionsData.md) + - [JpegSaveOptionsData](docs/JpegSaveOptionsData.md) + - [OfficeMathObject](docs/OfficeMathObject.md) + - [PngSaveOptionsData](docs/PngSaveOptionsData.md) + - [Run](docs/Run.md) + - [TiffSaveOptionsData](docs/TiffSaveOptionsData.md) + + +## Documentation For Authorization + + +## appsid + +- **Type**: API key +- **API key parameter name**: Appsid +- **Location**: URL query string + +## oauth + +- **Type**: OAuth +- **Flow**: application +- **Authorization URL**: localhost/oauth2/token +- **Scopes**: N/A + +## signature + +- **Type**: API key +- **API key parameter name**: Signature +- **Location**: URL query string + + +## Author + + + diff --git a/TestData/Common/Aspose Logo.png b/TestData/Common/Aspose Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..889044c144ee64d6476f98d2c05c38ec9caca345 GIT binary patch literal 8726 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 literal 0 HcmV?d00001 diff --git a/TestData/Common/aspose-cloud.png b/TestData/Common/aspose-cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..35690985b4abe9f24513a4650ac623c277a09311 GIT binary patch literal 14264 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 a{}qE&+O3DPPcAWBHLN`rJuNk~h_ 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 WWZ)o6>340#fqD*6e(k;Qzy1fy5=nXh literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/CompareDocument/compareTestDoc1.doc b/TestData/DocumentActions/CompareDocument/compareTestDoc1.doc new file mode 100644 index 0000000000000000000000000000000000000000..7bae98769c4652d0302d684305b55f3b1b92de34 GIT binary patch literal 22528 zcmeHP3tWv^*Wc%K$|>EXk|IY!L!B7tuUNEf9Tl2e^-y6K!!7(z3ZYh{L9CWUB} zlFECePYdH{Li8{!+nOl77DxgTBnGE~V3c|t<|(C|g*eU$s>gg~J1p4nZT zDsWI3S=d9AMmktU6#px#Oo;=Ait}gu4%MS=RoP{%=?l!)xXc_`@8zPYXhZ^vJ*Al z3KnRMS8}h!iBT9RzBBX}A1z9*Bb#giK91WSFzyV1;`qZrmD>g50K?1|6OV7es$OG?)X%Dzm|5V59j7Em_VQOCd2|py(CeBE51?0;h%2-*HA8p z$JJ%|MMQ`Cv*IG6S-#P6EPhZhj}`34W%)&MIbp1Th$vPV*GBH2-yLxazt#e<#?$Rs z>%DIJT48bdf35|TRf1&VmJ`(=2X-C_bChQA07PC@$feSBYMuY)pW6{}%l_RKfOm7C zf1=U?aNiAyk^!-Z#4$3UphBNjP-{J~AX`eSV6w!ZlyHVNU~mB;eF`e*Y5>`k3iN5j z;s1*TWTX^{671seXbPkU?D;SN1g`K(AnAaN&%hKmh(3oH7&4zjcREIaY7<7J%}d5kTH=lj$sYgkx&lzN|pR2Xf&d{EfbzuhY6}e zjU1q`tW<_&rZOLZ8b1#9#E$h`kVWi?th6Xc5q35;8Frw16vIe(9m!x3M}{rKoH3eV z4{-yi-Hc(t7z;od4-!m%7wiQ}=`fH|=+s67h6_m9Luo^XC1?@J^&!UBqzFw$B2*NS zgb~Pj1s6gmJ>kkGvso_$CxDWUmKjLNkp2u4VH@liHlWFlVIgb-U1$LUy?CepT<{Eg z0~$ouQXw1?34fu4OZ12zi6G%52I5hK4_ANS@gSE2Ib4u|nQWp2Lm9rY;M;Z}d30Oh z7;ahjgJ%XdQ^<6Oh;TkPobTfi7s=&$vtz?T^HR?{ml!CHX?1+Nv|ew*raiXI!H<@l zU3GTLg5#y@wN=Y*?AbBpk5;EE9`-pb)ll8)5v>`P_o9ji^w?jLzG=sV-OufZYd_H# z=be4W%%yslXYyioH7icGLi&rMqepbi6641wZhp3yY>N0*eR)FoHj_SN63X508VLOkqyKyXX_e z4dv;x@tUyuQb>t`Y-02G#Y-=L=XRw;ZE%c!c8Y`k*6&E2&Y~bKjT((7H7;kRWDYYE zwl%l@V*M_Ed0X9&4_T@kc1o4pb+9=fR2O4?Y|)ak@3-w3%$yz@`NP)vHT!*zxL)3B zRc@$}?Rdc8CnbfXYL_FE^X>gFmnmMEFs8=XS9{Tp)Hy!a2c&28tu=M3e5pG5y4kG! z)j4H?y(I=0GF(n9+O1nZh7oS|qf_vG->e+{d+x<4IozFBH7oZ2+IFoSy7K3a&W>BF zx)eIN4A2k258{S#^*dcBal$!)+$bC&vKJ=Fl&}%PmHn^JA&cUWhP@1FDdhhGtg zP3m@MGp}r}xn6&7soBLl%2gXD%1zVV)I)9=x161Huw{Yn4vn1O9Q&Qt4Xrz?^59Xd zTG_spz3+@K<+*(~s4C_AUHfmbuI(RQHLzLt*33iNA=b;sc{NnFesg!sli@>T=;ohp zyvG5*!!O}2d{SNX-JnymMO`q&W;af|wW_z7^3mN_=c<)|S9-^3p(o=re@HjuU<)PC=4_z?5(dm zd|1{p@8G$27d(9Z`^dnf_xf%gHGlY)i<-{noH^(9HV-=_ziM2l)7{|n#iosY)bmRu zmz_=8qjvD7x6{B9S3@V&FtZG>=t->d#bm#{Y?+kc1@AcWb#k@G9frA<|roCx)OV?JNA-^KX zDCPFED-DNtw8|^UZ|*nB!YX!NpZv|o1($wmian^S_j*YW<2kPs!wwm|Om9+nrdMa7 zJcs79?`GPYIm-i``&{-67=60efeqe1?fxQyxu#A!1zc9T{THP+IM^f6)3Fdvuj1%lP zWu?ziV^5jTK3V16IUg7AUzk~XD~xBC^-h1ba$wn|x~&NpMxSq2J5r>6zwO@HOHZxm z#WWubY;CqV+{!aO7{$Hu^SEao2j{ny^buGcdGfaX{6YNz3)VXquXz2|(Clln3mS3OC%-5xSpP@G#Tc1?bs_W!A2Tx%=-x%jxRzLE>iZ}gr8yK9yCKZaZ-m4woew*sE zX0G7anz@RXAKtOrm)FqbSaho}b+wuD?=kjyb1U0Sq-|slvTxERp1FVPdJ}uYSucZ| z!#0*bDGoihF06Hte$BXBmm+-fyxz!O(L1>7(JSw;2V4D`>xU*>Sv=KsL27Q3RU+Hu zX-Vdbt(wtu-sPF~tebqh+8}H3#vzW?=F+`4EB2DNH(qMJsQM@8?N&VN`im>(#45X% zc-~QRd3f1WW5?=!^?Md9m~=W}P@%ehTbsGn!X#zy+})a$QLW3GJgjHxOFPz>4a}Mp zke2hU}6?vSygs+%nBzB?R`-r#^;pgWSns@ zJ~J))+~s=}v6VB-yuLAMD09te%iQN_{CK5Tp?PrriEwX?puFLdD}QcZJ3aS}tI;6i z*@t?^s*rV;WkV9rH|cM2kF7UV8b7aO^XO>-(tW&7l^EAf;7>M5N;;nGF#c*({qx_A zE2ah~-Sy0mXC2vle*uXahD)U#CI_?-?SLeQ~U}5eB7x}eoL**Z7 zCfxfjF!AD=T;_xeyVr5a*@O~}tSI$z!^K`1hf;Puj@V_$-IIHa=V9{WszDY#-LARu z4PELcoa0$McGr|>az7Bj%u!9t>-E%$yR>R)2*2{k>}~y4H5TnQOG~XB&8r$AHzn1( zGT--%?0M4y)$?mi;#O7}oyrWJm*|o`-#cpK#9h;ChTiw4(=*Oqx)QzmvZ8TFZkcRI z+OzGl6U#4-Ex%njqjq*q{~hClcKS>&@?Jju_Mp7V6Sc_}HaB*8>B&x7`-hWCaP*8V z0|Eu+{cFz2zqNS$FzNR&|KEsC{ZTXXB#njPiKefNe*{-lVyFtsc!0nz!qUq)5U4D`3|=H@ax0c1NK+{qOzeX=2&gCVS$wM@uF106RLV2s z+&I;q%-wgRANasK{LgQBxyvb=4?vCvtO4+tP3IS-XlWzlbb8l!EOjQyoHS5QXk9Xw z84*!gq?kJ7R#L^Ts}c$KP2@~%wA~t;_pDd^}&bN{an`D&*-*c&`x!x#iO6* zY&a42YvU^0$*RuD)t3GRvzDxiFl$l?Or5ARX^8e@9kyY5l>E>MYc^FZ^Jt6DH{ZJ2 z^S;*B?RKSyD;!&+zsr2Kk+$HpcCoMG{3_CSt?LHC-ga~KVsfkSao*330=+KRa4iM&Ie7`KBY;x?&+$d>mc}`0}f+-)SAB-60Q>^VZnu;VkL<; z^!|+urmSpWoyCgbM)86p!mYIo*#=rHZn$5Be{gu9wbm4mv3llOEFPZ|?#~I02cHYX$N7krw*;JU>{8a(L{BNNzaf!FR$i4j+B}t24U?E zpQzmqHXnkaCX_J~$tXyofCR`4BenCj|J-5+VfkRF3uU3FDk-#h8R)4rgD%OGV4wxT zhRhF5M6(kz3EIelYcTZ7j|4$W;kglv5U_}RK>t8O>_ir0NP@+ruzotJ6==f_N=Mi% zQcSRZ?5U{bsF4F3C_zw43x@G+v&P*5Dc*aF#7;f#G`AE7N)!ZTu>0yRN&VtsW~G^&JR7E62K zePWWgxXbYAz+}2&hI9*@Gi7QEVCs3G=_Iy&`z)x@$VOvu;<9{NLkW9#u zFVdZYn^72W^1{{%1WK6f6c{k*gW;JBg^eo}*jO}YSP8d4Swx?~hK)zqi2TolcQC2R z2wzYi*N4rn{eJWFHkTm9+*BqRK6G!j0q_za13QEH=>WV%nE>2N%>&@<{wn~DR0_a{ z?kWHu%US?VvM&HQNisWhDFek7iZM_$oh?vVpiV&LfZ}%teDC@LRR9_a6sI0OP~0b7 z02JGC4=Tqu8nyvL*ErT~9~_D^;h*w4%V6EkxReQH`$zD@gk_O;`f)?!)4QxY>~i*d z`H>yE@Krx4*e@!A7ZJc`xda5@=_#*>D1YGF0?1=e;SmdA9MceN@#1tgt}XczO&HI+ z{0*KQMO#9bgf>O{VH&41q~aj9fY<_J3y3Wswt(0IVhe~ZAhv+m0%8k@Eg-hQ-?6}7 z`Tz8)@~Ta24aGIZ08sZuz^DBA&VDiFAL~L{kzcGRtOJtWQcb8F^`flk zg6G`O^T(Y6+>t1+eR#LFsi9t|5{qF5y5Jtc{7~+DE-=JFYyq(a#1;@+Kx_fA1;iE* zTR?09u?55y5L-ZOf&WVuKqnV{V)UWW6GlHC9bWuikN?*Vy<+?}kN!LQ=IE#6w|MmX z(U(U*AI}4zKd%hH|5Sx?==b9{@xB1~;RnHgV$=`NAAtD-fU*Ds0a}1T0Byiv0Oq#? zbUNagMu@||-vW3LEdmZ#vB(%Ww8e)bS8-tVFAu6jl18-($B>jXjwV8m3$J9Xh={HR z`v(dCGuALj#&={G!tpo`9QDFq%>A7pPw2w>aol1%zC;I}1EKzVk{9$o3VxY48mJ$M z79P|?JA7$Shx+juqHOS`a@6rYNjNfxwc=qwwEcLv3jxA5A%_o#gzz_n-3J}0A1#j0 z?w9r-_uM|z-?iso*Bi*LHV+B!P zRm)!&{yX*mwZ^Z@{a5P8u`8ZiJ6rI-D^7#EF99!j>~+_ST>l8++F+79vPMVv2_I^Vvmp^321oeW=H$i5J#)TpJc~>J=Pd9)!RsKG literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/CompareDocument/compareTestDoc2.doc b/TestData/DocumentActions/CompareDocument/compareTestDoc2.doc new file mode 100644 index 0000000000000000000000000000000000000000..505aeea9180cbc619eb0e59d447282e4c950b9eb GIT binary patch literal 22528 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 B9!UTI literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/ConvertDocument/45.pdf b/TestData/DocumentActions/ConvertDocument/45.pdf new file mode 100644 index 0000000000000000000000000000000000000000..557dbb0d8ca0b7e1e8709eaf02b6fe7b04c9955f GIT binary patch literal 174055 zcmc$FbzGIt@-QJN2q=wocbr2Vy1ToP?(UFQLXid$kZzF_Q0WGxTe_u@k_O-Bpm@E0 zz3=_~{&`>cth3MT?Ci|W?Ck8WP$`K?FoBslQK=S}`iD`Gx!FiTqz=Z`sC;}Za#r?c zM$T5=W~QWI7CBNdgdN1e!J_JfM->1<|xJrWx`Dl+Kj515nmx<+b$g9Ed1f&PKx0CW8V$H@T* z4gLA8FDEzaKX6>EkbmMJ|D@vv|C5fJ^B-fdvU70!$&Zx_^bdY)9RJjf4Z{78F*u+a z{GkUYD~S6~9E6?qA9KJ3=K9CDT%4eP&~bw}{xL2$2k4(Tu7Ah}2C@A^7BC3H_NU#z zV77ns<=}uo9Si#N%SIfWAof3H=HO)KV*htKfE@?;k2wHv5UxLT1B2Pwz<8Y$OO%sKl!H}V93(6vAqEiC9WueiVS82Wd5~)&Fn2)ElB}`u!xd^*|}LHtZZG)oLMAnja<#d%uF0i z%~+%X`N1rzqyUWuR3`xe7guL9BRgQ3P8u5;Mw=KKnwc3I8h(P92qDM`^|UlO!H6rN zJ$ryR^57O8Mu00EJi+}6Hexe&Bb}bzr@5hK7~O<tK7qS`At$b~Ah5 z#&tT25n}N?3X*Q>*{TJ{5fu|y*oH6lmJK9D7&z6^+%$4P!r0wpdM+%VaLi2PF- z25A$_S>l6NsK`Jl`6<`WpaNzE7T+I=vaTLr@H3{$8#&uR9Re5=S_ML@tFxOKFpz?gotXP2_$*tE6|CPubqs%EZq*HY0!C3Z1$b)mafg4WRi@X%}KKzJcl`E5hE*7BzqGDhx3 zswU1>j=*}kru$7===V>u>*>*@B@-4C5$E9nfk7Yx4KrsKQA-;@e=BS>cO$uM#H!mO6O)!{W~yhls)WpbEL`<}3gaz79tT5E`sHTEW# zflbWd$bL6y(g-OK7WyD`o)>?J_n1&vxOT!fOU4CD{6LQu-|d((oH3^2i9bp25^bB3 z#`weP6{aH0P7TyLfz+aOK3z6~wX9toB}N;11>kAGRWwv~xRKl5IchrO)s$i)|cW*K;a*D#2jOCFbu&-3S z`933k&>`o{C#BUNpYbAc*h=(erm8zvE$)$=qiy#mG|*H-q0e0q%qO8n>c4~xFf@($ z!`7@2_MhSHKihgbMp(90=zj3mQ|wma9AT-$EJIX`!5~s}9aL}R;TdVYY4b$WVbZbh z_87LgR&e}}roH9_X6s_;4aipdncdPc_Ad#4*DlKb$QspN zu4x`?0I#36vXEJ$H!k&!$C8`oAg4i5VQL**f9 zdqwtZBEx${L_yx8JE>RS)y^rJV2D58TmI|RLYM5nFC$KN@PD1!V3cP$1_It@%Em4(>cfuQAnh%H!9G@zkMsg_pwp zIfs985jl9-uy&aGPUxVY>wwz$Q@3w;%KOHCVz#3e@C`^-RQ6%0?tHq=)0 z1j1PZv7H~VETK86`JP)GubP(WT5vJ+2B%v_Up?h1hFDs5nXs?X7SZz9vZeaOZ41_0 zYA-X7N@V0UlaIr6RmXCI%UfbO8`ddLZ6YlE;R zdwujYA3g4|?vO8D5+kOLUkN!b`8rqw>4Ty7bOMzoyNL~QXIvxfg1_QQwhuu?b}yG6 zMxJL#M?@3N1v8po;}-)bS)Cu4=l5L%yt*vQ4@Zxxx6qs2$|Tim z54t!Lb&EeL_av&AguZ2eg@l}#C((~KfNulYyJaIR`QC?4)A!(P<1 z01o+i(mq_KR#tJC2nL$|7Q*`Nor-)t^@G-^aIbT=dq-5;eD5AnckmpthE25|D$`z} z8^SPw=FtD@$-}FJ z$a-CYd;wr759Clr|4|whGZzOpXA?7M;w1qL4gfVZ5HReIxqC!i3(3##BR z;ej!3>eplboDf#13_yX(0EN);Z|H8|H6Lg@R90v|pbnK03U3M<8!&;KAYjZN6Tk)- zA4&^_*ZhCV17vOg5(LWl8UfYf*9WuaRC!>Q=nR08wil&Pk1dobQb??fC~J3x%LKt?%HF3w%;Mt)owiL7v1kX0Re6l z{u4r%!nO5&dcsZn?_)#jH~7CoU}B(3{-f>2$RHqoiU8*tXxLy8(U4Y>)?^TNwlcDn zR|9ee=bu3X#G>Y)Zf^xWQUej?I*zi4+XJ7#*#w9t_QLiqR=>V~g`wX=)^F!_)&CZ< zSbrP~{~EIXnBU*$`u|0p73%VUQ?Ub^$<4~TjtGEUVBkXU#^J8pIDr-SlO77MZ3Uh8 z|3SI2F>qx>dQ;eeg~QDXM5f>T=eqvWzBm4LEd$^?H*HWqx@m*@!8IOmcxWB!8#isx zg?UrIUfzJ7P&uykg+?qu?&~^02dzWpxq(ppjb6WG2WX&ms9kQ_Zs3iK(DoY~bnKft zls7vtpTI%(8gj7z2shC7>#*~4JSg3dhy^rUHv$bm5I^G?RC{QTYmK1R_-T*iN$E(cE6OscSpj!T3T7TE4t7TN zN~-@kZ~Q!)x)IoFZ#w*MBiAoJ(CzxB00VNf{m4n6ZgS&N*E=gT0{xsE=#qnu5B-L={fbD? z?;AR3lz>LA-}qcB@;g(g5I0J3Z~@yNz!ZwRRu1S4^;0MlDEuA&s}Ilyt^Z24pfd*G ze)aho8?JFsf&U0yY`~=`E3l10AqNx!@#9*CpTXx^4xrzUNCjmM6sRCS5Wq;kKA>Hp zxxpG_4?liFF?o}86fPyXg_6wS`f+>rnT(u@+R2 zKMR!pe;mD_p70kQ&@A*C|I<@$Jmwef-;ym&Z8bS%$v>kPlZb<@>Hj5!{djcw--WQ> zZg_uQta5U({k#$S{a*F=Yt?wQZu=?F{kpqdf?Hq&{NxG2Mno-SLvbJIxU;troaCzoEB zD$e>?RkYm{W&g!y&S@zml3{}@IX;(Ce8tXGjBf`mTO}!4TZFn>JkNzbW$kdaIn-W^ z##)%<)7;=HLk=%Ymb*~2gxye^j_Fe}x*WMeJ&AnP5Xk7%(!c9;oV%jhq|p`i_DTlb6H?8r8M)W~=yzhep4N*x2!I zJ;PRSuwryJV$yvz(3-4!p(kixc{p0E5xFR)5TN1bbKBlWDm;e`3m;dlFMF6u)5Dfm zb~KfuWWB*fh@DI4%zDP~ixql4M!=-*90wX-giz+zGhJPi?Al{~76rucda}CXTVeI3 zpHc4`@}V(L1j@21w{gR2#6CateYbGvu_1H3F{JxJJc~mQdojW1>7|~1uh%64W(Wz& zW#$^JvJv*10yQjgIqF_9xV<8C6w9p7Z6dhMMQ*N`m!1?kUE;<=OX$N89qK7zO_;a& zvSgh3p?e<~Oqt~}J4@zYxU=p`F~(47wIasA9YjrsPGD$sNYHMA_9?~{?lV5#<`8_t zpVQ*=(bEBc4%MB4O$Q4!e)5%T^Goj30$H3b-}2Y5PCYelWZybEUEL9eXD^s-$&yhnuK1am(VC7TbilpH0)T^jyvhDM#$2hS)j8E}hM=k^J z`^d}@e{_tyRw!n4Vjmx>#v*64s>%8z;KA&f`y>DL=IFO)ik}`2+%fzYkFSgCwr&O8 z7e79GHi0!MPK{rWN;bfUqi?D_aPMWF6`h;h4a*5v>yk;Pv6nRK@ zK6dnzQ=f7jk#{OB3-WR%YIPpdPXlT&r?d$adhx2smFe!4V;pzAq+^g6Q?lR8 zqf5acUJTW8c=;hxB#Qy=Ra9O3Dbj=uZIiahS6gSNd`@Kr1LP0ko8^$6&sa|)_j?+T zjla6&IGior3&wgRw_C@8?XA$Q-5zP#lxX?N0lmOZWd;B8OVibgX+URU9ME-Cii?p`m)1y-L(nw6@$Q*w>;&A{6%VbCBoq zGyJ;_Pn0uxo{h5f9t3Z7v7N#^(V@6QU9d!0DPmn2BtPc!862BuPmCPEC8>!>`*-L^^k+SMr*_yJdOYZGvN^e7z5FR_>34D56LvQ+S za(?2teI?4>BrLK(tcqxoPn01s7tLL2(uWXujGQA%99LUy@wN&avN{ZQ z?so%GV$^6Z+cLDSPLn7WLN3D3X=Yn-mjSzNm#R(?^v;H_L|Zv15o`q5`yr8&vFQ|q zl2)U;;uOmsRg+eg5{Om#<)KjtB2tvn#jy+z+T>ySJFUtS-Ud!){x``p8pyr=tnj+;*@S&q`7?pFWhP=xNCDowKd z=;9ACxMZ}tci(4yWmH{%ydQW%T)xz0>k#GF%=(5=tER7H89 zNVdNJQa?16eO~!NCe4FEMDe#Z`|8nFq7{V=`=V%cSW}b}t7gdR_1)cesrkDpW?r$k zTQT)pmy{&GU=W|O^G%YYqxwZ3Q47!n3Bn@69PcuI{Hq23`4-3a>)rJ~r3Y`~1QV;pVmbH!sCGNxTR7ooQGUB)%~`StK=S*YVI_FIjwnNGI5Uy0=6YrlrhUAQj;z$ zadRBr6&bmEU&;%ml|Qa1xY3%VIgeZ{78+`bF@xDA*`~GNyi!sR#2hR#9L_zT7t-*U z?l4L3HxRtG57_3U+wX)2!Pm}QMZ-(KaeEO^EFID^PV7NV#flJXPHfe0s>+vWHtdeA zmT!$WdtSnnf-JC6!!$*_v(3PbL&3t>zOG5PBeCXN$zs~NPITBbeRg?h>7R_@(P->r zzPl7(GJ>l74CXsVu4VdWR^`C@BrTI`4Yf>9h7;$d#f!zR1S6fGD`xp!x+a(_N$Rz~ zTH&A1c5J_%?f$bBe!hJlFf2*L4cGSscah+gm_=GAja*()5xHquWZ7d4 z`5}4jQ?IiTN4kj1I|d!$ zhd#QmkA}1beil%Q*AW$`MIJ4(ys(^tsKl;PWC&Rg34Ni}DOBX`0}Q;@!aU5qRI8a6 zjS=iNk)szr9C`3LY?wZMW9-;ZN#N-iqL znX2Er6`5Jj@E(g;M$2Tn&z+rQ(SP!;4N+HCKi@EWr=U%F4=1>GxMDc08h?do2(c>R z`1s9)&>=YNTDbwG@3 zB?V%fPrEIBt_rUa%;T6W#(gc<7;!4U3~QoM^~D1F{qMo-_b?$()HyT4+ZXzJ61W|; z$`z|kOScHR7JfRG5tK zSG{e&E$vW*zhSOj^)0VBlk_r&U9Hv~K58et7dLSFks1lfw-J?Km6_WF_gC+&>bi`t z!^H?upwNobB8cnH(}w%@`h~ZB%fpafrhZD%UC%KyJf4}qm(RBoN>YfWl*zcwlqk}j z*4L#vnfpPh@FB5e>tHe-ExWTy{z4loyfm_%@9i3rMSPDFwEpNdl_Gznbc|r?H==;@}4T z7gNQn$tx0o@7I^M`M;!)G8{YdletrPUxy6Vy8Cs$-gHE!>h`1|FZc4e$JYI1YWCd3 zHx_(pUSB6zxR*iZ+^?436jT2SC z;^cixa;AT4gOhl2ef-V2w8o3r8rQd5yWWJ`9)yk`)MP6W7hoe;W!2EW*_0O9KW1ma z*SI6?LRGYRbZ_X@3RTP^xkZJQ`=ZC7J;d?=VmW+LZ7qcS%rqfv&eBtbd5t*zp_Zo& zW5!pakc=o;RKETMB%G0;5VFHhbdyf_=2EqHx8Wnbz3vCmU8~!qUW*VP2`h{>a2wNn&TWZpE zeg30*d_IJ&AfmI0^Fs>@u*24CJtF+8Q~vh&@zW{U+1WsUOLJL%v_qeW!5m=Fzn#bv zy&Q4HaXK4^FE^8@8_~D}?vqEupp#3!$G9c7bFPCs@JZ*5IBDQKH5qmVa~V!}fF6Pr zx)iJkGOZY6S7wTM^GdX?n0<@yW9M68urb)0NAili-8EIA{ui_7?){rPm-aY zqhJI=iZc}759hCIqcm0J5q5hB8u2G9>r!`-wLIF*tj+ zD_mFoc-b!F;7$`UCy#~PSm4t}ZNx*yZ0DnwJx{Ys^HWoAp;+FjlK|GS68Lu_c@0%;WImF`NrErdM@D&D00 zriv<@g%gN>C-)_c_y@H@O4V(G02B(p+;5kd}nhTCzKsae}7cB?kE zluRyLcyEaLIeD=+E18H>_&M*HP1+Ol`sq8wf=bpEV{F0w!`PztdfgSiREGx6fKd&hMZ&W@GvBOs%@Blb|u|i;#e6na#(< zb)Vws#~tYhKAyh)<0oO0F{Lw82ZIkD3Jy+LF>VN+mC+fny$#DT5aoBri!qA-M%uK# z<~owwCG?Oq3ddi?5aUf#i;%#}E#^>CQdLuA>yOg=@?swaKfY6vREQf^((H?WtE|Wz z-HlH3^&@@d9RXb1kg;ZsW(_H1jav-SZ`=!KEc1_E*ISa{qvHpoWe#QzuEELHDcIoH zbC^okd5|Kw4WiEsl8EloODwuA8)M{Qd_d3&O3(^bv2D}XY8H-Pf-4!Uy@V0ef|cba zXih~{h&d=fYVV_&Oyo+bWO3t+Vv5$Ay)E$d>l2V6eXsVBZeTPOI~#O1)1~I z{X&q~&c!`)1ll$otnZTK9;h*oLZouZ_9Mtt%)+L}#fb69=aPvI2BJ^%anZB14lkgNX&5;xv+YReV zCPvrprXtVgBd@3i8XoaVjO}%G;YB_7>6igmlypjtvH5He2$Y9(zul2Dd$lms1k)OHorBtwDPC407+kI(}SQ?vHGCp}Pd(4**sk@?-gZHhh!YWzCbZp4&P-3b> zq+-cpZNn8v*deAlS(f)(iCd+`x z83wJX?v5{MtQLm^!{R6=kXuC#O3#U2@sueMLFf%q2dwXmCJ-c)D#UK&E-5?!DmE(} zsbKo_j;EO{rsR{u-Y9Jhc*6PK#MCA)cs8S4`$*R71cwm(bHcBr5-(zy&nfgzttj16 z)JP^CZ_q#gr0G$)A@1f8apv$q{~KG)7Yo;!{xt@{?9$8U_9qW!4%uo}EL{8h3x@jF z2n4g~1u49bi^UjXm_cAhL>!wo{B;NLOrJ>HArono--IiRr+3v_U+Z~5`Pa&g%_6^s zjju(pI!MWnD6`fD@Je+x)-{gZ!f*4O=@Oj|%rL!qrt`km41ME*mw_?+kvv$SS=rm4 zcrYdV4J|{TwKbJ?YH`CDp~uKP+J;S`2Cr|`CQW+-WtCXb;|8APqSgkUEbQzF2KSNC zE&2(#%dM9rZqu4Hm5XAfJk}M?GcCQQ#4c~O-k2x|U}LsVze4_O@A!<-F#jS=;e6wH zY2Vq#tJ1#nji6HIvyE5{w3*s$bjhN`F!!~#HTx!w0nhYJWzDjBtg4_v`9N$Huf`H4 z)ANGrX#Jz}8e=UkTLE36b2BPk*_h4Gh)>FlHJ*bsJ_(3%owG5BQciVoX6H401Me3X zgqEDm;_l2&6>igem!%cw3v|<_y=Ah!JA-YtS}xv(w55MkG8=k0npwYeHJ9P?g2|*? zDT>LWTRHvgbI51IDnkxeBzt80{Hq7sVEg_`3()Z#?5ejXam)I5cul?aE83vB%1tMa zRbBTtGflk%_>tc(yokFoJ=xN_rgq(Z=+pb=zPvpl6i9Du#ocT7p<`JtI@P&?HRuob zMEV~6J=kGU_r$^nGS`1^pW@<{U~m6H_XSU5JHrXl!;eK`L6*!9vGm0tgQAC6_2Pnq z1}He9Z48U*d&zio9bt1%os8>F9-m~tWXuaIG_H9`X8x4hxa1`ZPFS#U4DEf{Hr8@I ztY-5iVUw2?W95#r{zX*((FVMD}%3$X6BQS52)m4Dd& zEX>;zS!VOOY8$UspqIDL-Vjo`wB6wzG&5pvPcvD(Rqb9eGwav9W9;$v(dX7}boUy5 zffMC2#`nr#v!eUz`r@x?v9pcUDMq!Z3i4imur7{Ozdb7Lre3cm$RSmq6HW)ts4T^D7;(yI%V4m*?zAH%T~#2x zJqz95Xw>i4-khCaOL}B(o<4VM#_4WPP}R1xou%=)`M7|?-RWLcvx1+LU3m&goZ`0X zc~>b~p{S{mg&+k%?W1_O&kIXfZOrL8Tw8|^K5xC^k&LVJk(d# zqSyigUSbf8)x^(|T>qjco>CW)M$ z4J);%^GO`vAR|y}S(g1yp-&PbMN+8}@z5zfs;~%yC9TRCBC4ngL{(s@CV^PO*k7?V zW-^sM$m75sUpww0e(;5#kV*7HlqI9{g(iL|BS{9_@+l}nGEXpDq-0qpxvBF6PhPA+ zae&hF0t=gL)xwI^VE(RJPvR-7`~rhdaNfRKgTn9$&Ro`dm;Xz1$0rnOaA;V)x9)=3 z@A7$CalW*aa%mE$@V;fso~g1s7(_f;?8=Z_5#HZI!8Q%<|)qO3{(2yR96~rnfx^@9k}G0!C@Zt{2`UplHv6SshMn+Nqr+phc5Ry zUwjhQCgU#(cSUC!&#j5q@OZcyec+E=u*V2?x(++sLi`!lLLBbE4AW7!;}<*@v> z@d<_xNGrID5fX~6Quhc1>kWgbrC5Rn?$_UvnHnw?vWBZi(ZRH;m*)I<_)Hp1cW5)* z>zb`8?0{d77{pf4Vwz$*Y3MA6R&Vbt&un*V(CZMfpf7(eU@PX3dW~2%MaYxP4sk{N zP*)Xh>|MZ7>AEtu(jL8bZo#H?uuk?vwarl*>+H!K_X3X*lF{47J&!lS&P0536$*wo zfOjtgzuvtKo=%tBRY5M?Q3qa>Q7aEYeL?a2E*j?j@NmYx=S*oxVHQD)NnCq!ynD|n z(vY57>|pj+;`XBT}(P}hmkf8h%^o`1vkMP2PhZ^^ce?Wftwy12b35G z*c%7z7ze0?!^R_1uctM^ z2P$p^tIpURUJ1-JkmHd9r=48f`DtC2HttPHjrVj67pfX3!Wsp!*l7vae$)(nWDIMIz$%ZnKqyBTc0r5-l*n^%5x(b;$$E21W2^&N8$RC<`z3wdxy2&}vthk|$7?(vg z&eUrrnu@$hqLng-$1UMgXT!|WWOjXHzE~e%<;p;xSi88hEG1cwT90ZP*^?V61}+2_ zI?Ma_6qIA-h`B@#c1nHk5)tt<}-Pc@w={kOd;w(;%POf<873PE%iR>t`-QH8jaH0sw0(|UP8cw3G zFN1D_*Urf`+w5v3KltY_ju>+2^5@|cu2@sOIW4SNFZ}voOS?mUK3vuZUJdeinCZSw z1_hYSci5NBhvf9=ocyZ&>f2S()szNXx5c+|L>-DZ%42voufF9}4Nuyr>(IPm7(*?Z zw70yy9i3`QGezhAI@LUXYQjB`f9j!aX_W^8*8t@J`F)fpaMFRoffqu;hE|69hAsm{ zBh4Yr9nI#=W5Nu0BwP1;kQDAHM7nggcOVctPe(c#r{*ch<`)n5NxQ1NV$W}*b9uqD z(g*BU7LVVKPV8JXpT+@Ku4{zuk-V#-R+-P0%nLy5bZUgj=*g*Cu_vA?;qt{0gq9u0 zL`NMi{%PJPNV8EuagzBJF)L5H1SVfR$J%qkLXpw92Sd- zKo;NaGAY6KP9rHxSAoyrq`yH69i%eA?oWAZR-G> z)CUZvs#*+VTzjwX>34^_+f}J9*gkc)6RbJHu6cpKJ-IyK>RJqPVy+o8jw5mp_Fb@F z(~;m}n1<**D0xl)K8{)cZBe&%4GwqslZVZF+;sz(l0NdxMfszz_$8I7qNiU+su39~ zsea=YcbIcO#a$YOB^-?rtCc)|RO8_;%$@Osl^hvq*QxW=7KMxE6&NwS84uHz%fzPx z7St>Tiy>nw*2hiYNWMzwuKg56C%TJ!I&s_i!^Xy^$ehG@yX#G8V2)o$H+E*TA-D5%)&=uYIY$u~Ux!_7y)Ey{@RNPVZexv)^} zC$Dz7N6)*r(W$9g14Y@+R4-XyqJcS}&vk1_Zcf8io{@ap5XSL_MQtAzw*i(Lmx zSpR)40xsRj>Xe8y|1kIS_A3mh$n*3nc!mYS!>QNb)3?8cej4lJY&_XqIxrel)QGPqsPL#zpv~S&u&XNRgcT(e4)2L2n+t+mS<)H3 zUZ9Ns?fcI{(a74R8t)F)}folk2F+z|Fncd|$ z3~W#`FFI3y8HG>)f+4bO)_)%wto6jik#Rcowp2mP0$F719v3XlBIT>+K?>|^Eyl0l zAoJ7;?N(ew7V~nig5Nr!^|gC(k>JjY=sgK{LYfYO=eiZTsG=9r?SxPw2GM9%e~({e zOp0g(if?g3X;#vEJZFR#vINo#-*n{nixQlV!V8QkgTXPz(r8WJwRqlv_q?5JI)Gq- zb2<>y5o4*GhuV zpT+oPrCY(<<;YhiRS#%PN=#YZ-pZOcfplnl;MQtYO!Xz9H^MW8GbfxNGDIOTv6lLig?v zi$@`i1@cJU-n>ury4Cf410#Thq4zRC`y3)SNiCX9}ZMH6aS)9Bxbu?N3tf z%t#)O&aL^?G!kdr-f;Lv%CB{AQ1ly!U(aF_-8+Xk*TuDjxcFe6G=9y8>&;!)Oy&y3 z(()rZ&WDNvnBOS*wQ)D;yy*!8v*%$+2!l+#lhaBp){?wmq!q8Oeeh08E5%(4_Ktb@ zCUGs-JLxIAa$fRNPB8UYTau^h4CPC)IMZ19XVM&2c_9>?G2QY+^(RR79lakA1lQM^ z759cOPz1aC_YN-L8oOBbx~F3e7Bo*e{8H!UA*W3C?G7$BexXy2x_;v^7DMv#s@)@; zZgTpn{iZJu@_J5s5nKjGAW78Wp)QMyJ_@Lx-8pwIT` zsA;iR&n1kfN185xW~6ruzK-8*7b9Y?F2! zCyl!IxzE%RgoG`>xp^M#HtmUFe)>4UqclC z;?8;*f?v=~87^8285bf=c?I|FiRf;8VPZX4hUHeKF}$5Xc;tl#b+>5Zjb@gDxP8=j zJ{CDSe3`HMa8E-R-~7;gr<(NJ)_9Y@p=+Juj^9 zVIIq=o))vg9xF4R>|gsH?WXaC952>;k<2C@FJ10^f+-i>I=e?g&DI?M&gVpkxO3^$ zQ9xu%xu6AGyD-a>jw6BRnKGCGCpU1h^cJnKOxTbdlIkQax=j3#_EQbx_=ZnHR0>Zu zLl~aQ#Fo{LJC`!)CvK@UsFBV@+t(y~6nkMx&o)8&xW^24Lft*iOuOsZ7PDqd(I?`H z{4FZYxFXqiIa49zt+K5Qtv0O$k5x^d+Qv{gw~NQn_@O7ZnK_AH(3cF&t@)k>@Q6`Q z2)hqW@Tnq`J?eVstWqQD9y3EJ`ifljBNFRlxAvO1x5t!bavgHL7TGu3z26GFVcGm> zysYv;?*6_=4GpDm?!8->h~CqnBto2%T5RSPQBQhpnd;c=iyOneO=#^iS3il;-!uau1Z)s$r5+y z29lhV=P}0foAj5HFXYsL3P10TOWe6kzaU^?g?Gf&glN<5sK561^j0r=n4RZQJn6R4 zuxg^l5%(dj)V^@8slU-kD7)$SG5&1`k`?}$@Y^p;Iw4ia4l{XnwMXbg)?dK)oIU!%PNbh*=qE3xL2cI zjZd&%y?K@XyH(7`l3WdzcN$*bMIwva6D$S(f}Wu$lsU?H>9Z+kN^ko&ws7nR)2K5j z!Av32H|9@FS+YxCYL1Z!cPurZOl!!1>Jm^27-f zv+D5J)qr2<-eBt?kftaOT5Py{Yd^#H4R25tEFc+UJ3R2N_ET@PL3&$RUir37J46SA zk%B23E*6gZmbXK}+veq*J|&BnY||5C4;H2u>b^2E5UUK;EL%xCS=A3MRxDPq9*R*| zy(CJq^sk9HUA!Rarmn!s;f%U$a{eqUiY;1cM9uhw@FW#e&wn$ko4OLxM>QErT1A`1{POV8lR+}pX;Q`26DN^6ueck6l8lg0ua1+@Uh61bHk1Hde?9q*B+ulpvschM0 zNO#Po_@pa}c62eP(7gC+(WMOW8239b6G zkAT(V!q~6aZ(t7m+N6ty`TCxo_&A*7os;q*SG+5Sl%G$M+Y#9sRez~g(#6z`?(H|P z9<5S;Cq34w5&8|XNwnF!uRNwYW-^vN=KHz3vgED(JNL5cx7Af=I=vckqn^A~^HR+Z z&ogg*y~V=yOx2M}gOou}Wv+o{OnqTzeA*@9w$SH+{ZT384(xR>27Xu@IVjeMx;orY zaJJa+$$k~{`COzshw-fsh_xNHc^@W_Vr*WdC)Cf1Q=X>Cqs2TjwJgM4T`~9l`+LDR6^W!*q_qt#MH#U$k^Ma%Ec#GZAKsA; z5W;6dsy8th7Z4LF)l=} zXoQ1#oarZ1AR=c&Oxpm20a$^c!CkOzprRp#Z3s~rc6GD+`#VHNkgX^BW%mVwH$jL; z&BUMYrp~kK1(OXt5O~ZyfLhbC3c_v(D4myGLo;ZFKo67e9FeZz>*pJHi7sH~TIpXR z3N}X#5S%q(cLk5WjC>$v2@1eL&b-sPbn8`ETn3&@^kAkCodU2Cw9s*3=Vux}IK*pP z=YmI`XYOm$<|0^~*X!v3j*%{ou*_}Z@9`4nRrC;#4F%EKjouS#&dcZp3!2>NUbNPG zyaIyjHlchKG>jKKcyjmZ8Fm>tT4&V>!BwRHJkJFtgAod2P`lQHqIrW8NQW_DhY4Is zC#oX}anl2?@TXeXMMiGZVJVJm_RYobQQs}0y$R$1BgHw<+#Dyh9@A;vwJ{;$y1nWo zcyGms@0H}P6mfgD7fRHM8gZx9tG)+(vt!FheCXx}lxaOlui8~T=@pmO`5s&BGp6;r zz@@_Ldoo)b@TK*0*9GA2lRxZ{^`v82S_v!(w66=&+^4@v(mcSw3ie;Ax*+)8=fBHy z759Cy(Tm?C4ISfqFvM-5o_JC7$|URLdS1Be zS$dU4^Yk?`%pL0P<;;EUwYL)2Ue{Qc)I{wM0yhJzif5`D}Al#%(|hbbiw9~GJQ+cr?}~}(Cf-Ohq3v&xqKAG%M(KPteE;g9_$Cz z(XvPrcxgY3(Olv1(w~in~S#(Tg}$f__zsn2R!Cl~#cRhqgxJ{k!@1P23j&%scD zxHZM|u7e5e&x52sV;ebR2gVy*dxi{0%h*g9ZDVK395uwvxO~#!0>*^wJM@Y%SmJ}9 z1L&2+ZNnl8Fxr*OUW=4tN$$l9JzbC>Al`}C_>7mLgla3pLH9J4F4$Vx?zO0!FWcNS z$+yl6C;yq%Qvv}4P8I&wil_x-99bPBPm)#GtQCMAutJ(smE|n5A)jPT^6aU%D#?cI zWq}}SG!uI?;zx}M>M66(t$6(k-J`CD6Ex>50fh0Q&RUUO%G}hQD^Fg=4ofB`qEcCfk&1H? zI8xeC(Wxt`Re-B2@KFoYHS)7wn~m5EXq1<8_H|6%N+}>?Dq3N0(Wn}=b<-8?w#kvO zs?->GrXy`qS)nng6*257KOk28dbF};>`pngRYjg9Q*p6dWy#oE4!hW~al}a_0xJ`{ zEcvP=&hgMgBVRF+(N5b6`N7U_NSC1kh2KZ=4-F??r|;@} z`o6Z;5A;L*w|3Bv^ke-*JL;#}Nk8+qwX=57uG&pM*Dv%-{Yty**V;qB(VjGdM$#x6 zO=D;*rP4S`qjZ0VGH5(apouhzCQ~M5(G>mG7x=sWp1)7Iezu?G=lHok+t2g!eU5GF zAJBEmGkr`yGr$ZoL(B*>%A}e!Gr?qr4KT}OoB3veS!9-&6=t*~v*~ucooFYUx;D#BwKMHpn`0N-<#y%& zxGod$oUSyEzvsN?oG1?{eA;m-O_c8t0$MiReW`G%JUNkS6K_P^Y~U?nFA#PG_f^6Xzs2{hWbLl9S@3JDEGLu zqDEX0wGCX0EMZBDEoEuTSRTvAYG7HGZ8=s$%hzgTHMW{qO|52Db8%5zQuow-^_}`& zJx~wra=XH=v`^S4?Njz?`%C*P`;2|oJ}0lptMZz>ZXcp8v{f!PheT&8rET=NxJ;i? z2_3W#(_Gq5g*+I(b0|Dis#q$P*+)2ohw*UE=6mu0eCR>(?uLY|bTWRp*8u(3qyvbp{7=5VzrAF!`#^(YfGsh)&U|pmem()?+~KAf2R>!P-H6NFN4o z$90)52fI`CG@TEMC+W$03b*6-9LC|Gd8RJVvq179@LULuhAED zE$9sc!|lLugibWkCI(Em1hIoh?v?uQ>+kX!l=$`^FQSd~7cmZ+dM_Oicc@-J?f?TvsTK93wNSw;sgMkf#FIrd z6ru5arSNx4s3Y_-<0?bj;n2xDsip99uR=4==TrFAd}>I+)SFVEw3mt`H=nYoTFs-b zlmz`fS-jQ=Te>U69wECy{vPK-GgZLERBK>SOZPlMGTN_ zbe5a!mQhQLF$2A>rmffk+mMqzbY3|6j{Bi|hx{p$Uc`Dzs9fx0@1r^1UdWh6mcpnz zzL`Xy!GBajJMWj1w4-BD7k}-Zrsfnw8JO(`{PG)dA167^az3mQ-9F@tysW6tHXVYN z4}hi^B8EXJOp@>O>*RwGV-PuTDvRhn^j-zkvJHx)g4d}{>Y;hgTjToTjfB$g;hpxw zA^1VjPZe{aR4>ZDax~7DT3)F>Rwq4UuG@tvJ!Ao0WEos zs;O3J_#9tEy|>5^GZC{6BoUN>MAWLXX`Q523pVdh3~b&4dV%ugmE;BiCYI z*YE5b@_TN@!Prw>IF3i~B+ROie}gFH3o1ZWK;_3GR_PCLW^B?2^c~}P=K7G&@gLSb z3V&4PCGSG-D(_ZriF<)s;2j1a3xO1e*^fbt$NOFd;{Hmf;LQB+2Es+WNJ3^ti}7NL zn1M{b4Oh4R@!U7VXO+PL+{T<6Lh;qlxdXIXA2|f^ip-T$aLyOW68V*Uz#g0ljkpDe z^8g;jxjc>E;8k4A$8i?d@;&|m;VMf7s$dnWBGdpiTIH+vRh_ESS*Sjjjb(mm7Qp}f z%kzRK-jm`<^^AhT-{v{(lU-k-QK$b#Klu|i&KcE^~9I9f&UF*?uH!lV93Un>jF^QPRuDWG7Fir1OchS$<&o+4&Zsq9Z= zJ@k1891j+spf03~Sn(aZ#Bwkw>dF^s9!-#EaXw6^h4ed-qsG!Q>Ld!Njy}S!2-B~j z0=5ue$Z=}1Y$i%bs*ka{?r^NEo73B36t6M2=hO$#~)ia+1JB1}elF z#Cxa{3IvVA9v_Y>R!$`*U2dnb+E<|J5UFF{p)}I{h*rB}={2{AqEHVC-2(KukuKA6 z+9>9GXVPS9jh#~^l60c1(1~u8TrAJYG`Z^O_ls<|6@GLLu^AuY^)6bh&QKcla^G>k z1l{dXVOP`7=_R^^Ro=n~19=~H@(z|;+(e#?^;T1=yTJ_<7Uj7UX$bA6^&U-QJP~-u z#o{E^JCkzdP;$4s)6Twk-}n8#_x*m~_xpL@cPASKlU{Gq$4puT zIud~ia>6&zE*m%_Cyb7v0X>mv2X$GeBd)}^JL>CD*5L%w36xQz?9SqvHP|FbO`
$E86|PxyAo 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%0D$b#N*I+X_R2t|G|2zE1{GcnPx zWs?n3)509IP@tH9H>jvpx0k4%^)UrM%4*tFDm!+fC?d{4kg^g+URT[-NCQx5@t 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 RKBa34cMr-m=bQlx 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
}wB05Fhn|cWDsZFSl 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
99mF#Lt}zqR^DWMX<1Om7DIy*v9Y zJb&*A{!cFc2&VrN@jrzAqvYQL_aC_af$QHw;NN2YC%XQD>)%4)-(vnJy8hSTBK~7S zgxNGL#o~>b?)=R(4FdUN#`S&Jiy1VX51=^}#m@)+UaTg0{u43`5)LY^NhdKc0R8EuI-Php^rPlmW&t-5EH#hkrA`8Dd{Ma G5&suZHcwsv literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/ConvertDocument/Delivery.pdf b/TestData/DocumentActions/ConvertDocument/Delivery.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3b1ec533d88445870574106ca27548ac3b570eae GIT binary patch literal 2336 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˙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:0 \ No newline at end of file diff --git a/TestData/DocumentActions/ConvertDocument/awesome_table_in_pdf.pdf b/TestData/DocumentActions/ConvertDocument/awesome_table_in_pdf.pdf new file mode 100644 index 0000000000000000000000000000000000000000..298ce556adb72e57b124b1811235d59362591976 GIT binary patch literal 313045 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±WRpv`sQKN26%pDD|q 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 z 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
&gnrf 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�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ℑ7R>n<;$X>j|*N-6fyUUqj0;`18K4C-t-9(RE!9J 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 z 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 literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/ConvertDocument/test_doc.docx b/TestData/DocumentActions/ConvertDocument/test_doc.docx new file mode 100644 index 0000000000000000000000000000000000000000..06cd54df7d8359704c6b53f98cd0353e614ccdbd GIT binary patch literal 14342 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 literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/DocumentProtection/SampleProtectedBlankWordDocument.docx b/TestData/DocumentActions/DocumentProtection/SampleProtectedBlankWordDocument.docx new file mode 100644 index 0000000000000000000000000000000000000000..6692c34704a078ca83ae04969c7b1be1740fe596 GIT binary patch literal 10156 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 + + +

+ 23 + Nelson Street + Howick + Auckland +
+ 543 1234 + 03/01/2010 + 14.00 + + BBQ Chicken Pizza + 6.00 + 1 + 6.00 + + + 1.5 Litre Coke + 4.00 + 2 + 8.00 + + + +
+ 10 + Parkville Avenue + Pakuranga + Auckland +
+ 548 7342 + 05/03/2010 + 6.00 + + Hawaiian Pizza + 4.00 + 1 + 4.00 + + + Fries + 1.00 + 2 + 2.00 + +
+ \ No newline at end of file diff --git a/TestData/DocumentActions/MailMerge/SampleMailMergeTemplate.docx b/TestData/DocumentActions/MailMerge/SampleMailMergeTemplate.docx new file mode 100644 index 0000000000000000000000000000000000000000..5e9b364af143a546304d5e571f3b5d253a7d0795 GIT binary patch literal 23765 zcmeEtV~{6Lx8|>H+qP}nwmoed)3!BjcTd}PPusR_+dKdF?#8}1?)|Xe?`A}0Wo4es z%FH@XJtyMiQIr7zMFoHZAOQdX5#Z2M5d0?)0I&=O0H6RMfptXe?Oe?4Tntn_9n75d z=sj$02n#@gDf0lpf93yw`X9UljjE$|e;5(FG|mJ>yVVC~MAXzk;q_waluscry^$-u zl5CrMt~muosX)tm$&`8h#(Cp53Fw=~j&_0?O9;C2& zlS%5gP)g=Pcv$^JiPZeO*U(mW_!(sxz)VSw_Ic({vgj)@R5khMS6sK`oqK=N$&BXr zQLrD=g(2P~H;!dSn$OvM5 z3P2;|_P~etNuHUQp8WtB2tPF_e1&t?d4Hr7?<^5Kx4*uCwaQ3JB-1}+%B1Afxt@OE zSfG%jHN5j|dT<|Ek7m6euKJe1T<4(4N07y<%028u_^Wc?-yi_R|Abro1nidkzb*2A zVF~jWw+2pTHqH$6|K$H4um6KV`fp2*PF$A;5rPf92HQ3o@#R>DCZ1c}lFWA}J_iX- zzW{QFpD0@E?kXf~S6tUWdN>|eSjr5_T;Tc53tnTSwV1b(X(+L6?P1#z1)-=lqLUG5 z0Vgq4YiVb{#K4=7oX;E0R8g?k5Gq8l#sG_1*PumrEif$axve!Vgtfi?nRWWP#pOl>1I
Suite 163
+ 79 Longueville Road + Lane Cove + \ No newline at end of file diff --git a/TestData/DocumentActions/MailMerge/TestCleanupOptionsData.xml b/TestData/DocumentActions/MailMerge/TestCleanupOptionsData.xml new file mode 100644 index 00000000..6e5e5c03 --- /dev/null +++ b/TestData/DocumentActions/MailMerge/TestCleanupOptionsData.xml @@ -0,0 +1,11 @@ + + + + Caption1 + Data portion 1 + + + Caption2 + Data portion 2 + + diff --git a/TestData/DocumentActions/MailMerge/TestDataWithRemoteImages.xml b/TestData/DocumentActions/MailMerge/TestDataWithRemoteImages.xml new file mode 100644 index 00000000..d8e0b7a4 --- /dev/null +++ b/TestData/DocumentActions/MailMerge/TestDataWithRemoteImages.xml @@ -0,0 +1,11 @@ + + + + This is the first caption !!! + http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Nagasakibomb.jpg/300px-Nagasakibomb.jpg + + + This is the second caption !!! + http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Fat_man.jpg/150px-Fat_man.jpg + + \ No newline at end of file diff --git a/TestData/DocumentActions/MailMerge/TestDataWithTextInHtmlFormat.xml b/TestData/DocumentActions/MailMerge/TestDataWithTextInHtmlFormat.xml new file mode 100644 index 00000000..383069e8 --- /dev/null +++ b/TestData/DocumentActions/MailMerge/TestDataWithTextInHtmlFormat.xml @@ -0,0 +1 @@ +<html><head><style type="text/css">h2{color:green} .color_red{color:red} .color_green{color:green} .color_magenta{color:magenta} .color_olive{color:olive} .color_teal{color:teal}</style></head><body><h2>Table</h2><table border="2" cellspacing="0" cellpadding="4"><tr><th class="color_red">Column 1</th><th class="color_green">Column 2</th></tr><tr><td class="color_magenta">Value 1.1</td><td class="color_olive">Value 1.2</td></tr><tr><td class="color_teal">Value 2.1</td></tr></table><h2>Div</h2><div class="color_olive">Outer text<div class="color_magenta">Inner text</div>Outer text</div><h2>Image</h2><br/><img src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAADUUlEQVR42lWTWUwTURSGaUtIKY5QweISTUzceDGu0Rj1xURjTNQEE+ODGn0hPhBEQdqZztahBbrAtFih1Fprh9IBiVLLErZSU7BUoS7VqNH44ovx0S0ovdfO4Ez04cw9Ofec7/5zzr15NEnkUxSVFx8ObZ1x7nzHN6z9nOhnzOFwWCnECcKoEFbBRrrp6iF/XRvD0BoplkdTuAiIhtt3P3Fu+jJlKlkM1WoXLFjVeSnpXrC94gV3ciJp1X0L1K7+NtDfvXdpj1TmmUwm8QTfLa867T+ceWTSwO5r5b87XNaDEoBrv3p2Ai+AU1Qh5OiDGS4UXi4roAisQHBiYfJS2obAVPMyELYcGxViOIaKcLaNLXzadej5nBUBPXW6hdYW0z4RQOYUXK2tUfr8QeXL0Kn4JKEBk7QWdtrrLggJJEmoCBxVCf50qIaaa0HABFkEPZaLNnGfwPNFGV0u05Y554bvMQoBPLbxs9t9QydJpHP/KayRbsf+pG1NdgTTgDuGXa8dbS41ZtArxaQYT1WlHVqYaloGOcvJIan4X2MdViTl3vExbS+GPfXlvzzutj1LPch9HrYea59t0YIRtAAO+PQuIWYwNKikYty41Iuk/3TvMzsCB9HcQR7msgzgjZs7Z5rLQPR6PojeJW2d3oDCoG/IlwAYqlexbp/i9eB19ziuBoMoAlrR03YZ0G8+0JFhS8EjuhD6zWfuCTEjppcBOKYX1bwaqA5MM2oYZ4pBy7XjrAyY7sPqU01FcNZW/jtwZeXXVpt5u1RM4JhYzHFBddqz5/28fUU2NwngtVUbZUCE79o6x67/MYiXLiSbS8D9xp1vI7znkLvDK07A5/MiT7mzdxMMAsdMqxaiWDHkgzePigBUXy9KTfdWeVKNSjjPrvv5uKkYxszlIHX7eDLeVfkgbt30bt5eAlOOtT9nLRrI03szrOumOtcb4SrTSj2KKfr4nuUZ7kR8HFPAYXLlYqxRl43TGjjTWAhHCC1MNK/+lWA0cJLRgfsh95G/N1H136z7+BCSuHMuMEGVLo4a1XCKKcuO0WXZBw1FcNighmPWbe8jIeeJpdFiCrkHguWUyM92NBKseBut8T92bfsw66z49IyrHH2T5CvlqeCYUvL/ANIZ7+ohXSdWAAAAAElFTkSuQmCC"></body></html> \ No newline at end of file diff --git a/TestData/DocumentActions/MailMerge/TestExecuteTemplate.doc b/TestData/DocumentActions/MailMerge/TestExecuteTemplate.doc new file mode 100644 index 0000000000000000000000000000000000000000..3978ca9be3b2dd18aaabbb79c1a8d5559295ccfa GIT binary patch literal 209920 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 literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/MailMerge/TestExecuteTemplateData.txt b/TestData/DocumentActions/MailMerge/TestExecuteTemplateData.txt new file mode 100644 index 00000000..c34524f6 --- /dev/null +++ b/TestData/DocumentActions/MailMerge/TestExecuteTemplateData.txt @@ -0,0 +1,49 @@ + + + +

+ 23 + Nelson Street + Howick + Auckland +
+ 543 1234 + 03/01/2010 + 14.00 + + BBQ Chicken Pizza + 6.00 + 1 + 6.00 + + + 1.5 Litre Coke + 4.00 + 2 + 8.00 + + + +
+ 10 + Parkville Avenue + Pakuranga + Auckland +
+ 548 7342 + 05/03/2010 + 6.00 + + Hawaiian Pizza + 4.00 + 1 + 4.00 + + + Fries + 1.00 + 2 + 2.00 + +
+ \ No newline at end of file diff --git a/TestData/DocumentActions/MailMerge/TestExecuteTemplateTextFormat.doc b/TestData/DocumentActions/MailMerge/TestExecuteTemplateTextFormat.doc new file mode 100644 index 0000000000000000000000000000000000000000..a09b6b3fec29cfb3187842bf92b3cb96121d5244 GIT binary patch literal 26112 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 S*oL&)9*U+09qs>P82BId)X&ub literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/MailMerge/TestMailMergeWithCleanupOptions.doc b/TestData/DocumentActions/MailMerge/TestMailMergeWithCleanupOptions.doc new file mode 100644 index 0000000000000000000000000000000000000000..1c1dc03303eeca218e24b58dd92966f8edd46f41 GIT binary patch literal 28672 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 N#ZX2kjQ=(o_zxwTO;P{= literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/MailMerge/TestMailMergeWithImages.doc b/TestData/DocumentActions/MailMerge/TestMailMergeWithImages.doc new file mode 100644 index 0000000000000000000000000000000000000000..1bf200994cfefb60e80037d3faf22d52bd2213de GIT binary patch literal 26112 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 ATmS$7 literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/DrawingObjects/sampleDrawingObject.txt b/TestData/DocumentElements/DrawingObjects/sampleDrawingObject.txt new file mode 100644 index 00000000..0bce380e --- /dev/null +++ b/TestData/DocumentElements/DrawingObjects/sampleDrawingObject.txt @@ -0,0 +1,36 @@ + + + http://api-dev.aspose.cloud/v1.1/words/TestGetDocumentDrawingObjectByIndex.docx/sections/0/paragraphs/1/drawingObjects/0?folder=Temp%5cSdkTests%5cTestData%5cDocumentElements%5cDrawingObjects + self + + 0.1.0 + Column + TextFrameDefault + Inline + + + http://api-dev.aspose.cloud/v1.1/words/TestGetDocumentDrawingObjectByIndex.docx/sections/0/paragraphs/1/drawingObjects/0?folder=Temp%5cSdkTests%5cTestData%5cDocumentElements%5cDrawingObjects&format=jpeg + self + + + http://api-dev.aspose.cloud/v1.1/words/TestGetDocumentDrawingObjectByIndex.docx/sections/0/paragraphs/1/drawingObjects/0?folder=Temp%5cSdkTests%5cTestData%5cDocumentElements%5cDrawingObjects&format=tiff + self + + + http://api-dev.aspose.cloud/v1.1/words/TestGetDocumentDrawingObjectByIndex.docx/sections/0/paragraphs/1/drawingObjects/0?folder=Temp%5cSdkTests%5cTestData%5cDocumentElements%5cDrawingObjects&format=png + self + + + http://api-dev.aspose.cloud/v1.1/words/TestGetDocumentDrawingObjectByIndex.docx/sections/0/paragraphs/1/drawingObjects/0?folder=Temp%5cSdkTests%5cTestData%5cDocumentElements%5cDrawingObjects&format=bmp + self + + + 300 + 300 + + http://api-dev.aspose.cloud/v1.1/words/TestGetDocumentDrawingObjectByIndex.docx/sections/0/paragraphs/1/drawingObjects/0/ImageData?folder=Temp%5cSdkTests%5cTestData%5cDocumentElements%5cDrawingObjects + self + + 0 + 0 + \ No newline at end of file diff --git a/TestData/DocumentElements/DrawingObjects/sample_EmbeddedOLE.docx b/TestData/DocumentElements/DrawingObjects/sample_EmbeddedOLE.docx new file mode 100644 index 0000000000000000000000000000000000000000..f3285b303b5783b254f183dd1618a04b2380e1f6 GIT binary patch literal 22867 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 AO#lD@ literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/Fields/GetField.docx b/TestData/DocumentElements/Fields/GetField.docx new file mode 100644 index 0000000000000000000000000000000000000000..dcc63cbbf19354a5921aa78d63dc930a666ea9f9 GIT binary patch literal 11446 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%0Dav&{N8Jtw7+)^LF4_|{dmui-u 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 UNBi^a$?yGlfBOX)`Y#LmKS$wEApigX literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/FormFields/FormFilled.docx b/TestData/DocumentElements/FormFields/FormFilled.docx new file mode 100644 index 0000000000000000000000000000000000000000..91b03f6839a35f20a465a09c94c3db05056e5251 GIT binary patch literal 14324 zcmeHug;yNgviHE??(XjH5G1&}TX1)GcY-^F;1FB_1b250?!kg5cz|z`d(S)P7|FCQmzCk^%^DnmhnF=>PxS{trvwV~V_Dh%id{In^_Cy(Vzgn`JQNChxjT zzVfo2NpyMG-_+vq`kYWkwmiRBrz4@8?fh{Zo;_qnCVd86fX+r`QPGyPuE6HA%NdJWp3>S78{L z73jbIb=}cQ9)P~1WL3Mp1?J4kEXrXpvzyf~8pY6BV_4a)LX|_GiV-Ar-)p+5w^Jqh zIyKv)Rtc#FCgf5h;&`vNr|B%S;F2!HlFZi=EsN!D_950nW0Lbafgs&#`=eJi1;=%2 z);A4sGPCNjBHo$TnS?JQNC;oiF3xGK*U?Wm)o2F2kdg%5J&5pj%a4khmMTu&Lr`dn zROLFKgPk-FKdGOIY4tvibt#`jc?9oq;Hh33^uk8Hu*6EVqLWRx12^>^EnI9(v$%gr7rh8V&n#ufmbd zE^kQXdystvhGw3Cc_57!t#o!2lC&zV8ti{R7*kx#4#}S9FBO2QG16YhTgrYTxoP8R z*Bk?_q&=*g6>NbhIazCE@36=$keHG$5X)Lou+tDOLLo?I&R$!n7dG6f)|x;d4XYZT zIF5fEThZD%^j#B}m07Z)jc8?YF5Ebz#bvmNq|c4#4`+V9G!}(93~l7F%w$YwD?RA^ z)|&R30ne6Yit=5eaU~qrmQ}&Rwb+YcOk5ZPY(8w%)Hh$Z9H5Q?vg>kz*H8^VF{w5K zmY>g~Xh;LIr69Ux zidRJ9CEa~(u}?!at-8!dolk~h!l zoSKtv)9G4J{|-*{wjsFKsh6yF^vfVt@GDyfMJDY~3Ogox3z1r^gsO(!!UaOLq+U`6 z`4DBPIvOqMc|E7N@=zV)6TDg@Nq$3FxMF5c@`YrEK;|UV5kH|2vygGiWcYpVd)k;L zJM`fI3;wFN!8WD2HnkkVTQFkV<~VG{%z+TA9y?njcb|H90$ZB*_%+^3J->iPCTUm^DL(LSYrY zKBw$IuMXC9wP(&7qhiv283ker)X3MDogt@=TBphoAzH~?IcJHf>=o3ECQ8v4Y$}rJ zWWwNTHU+axYi44gPPo*1h}~uEb*iUVTchKCc~ik`Dx+qA<*XzfMS!Ud`_V#-vLlqz z8m=`&zf@xW>Gf5XTN#H7jJWk6>EkZNo(zV^5@!-)Hke%<87+_)Vk$zK3wgJ0g`_{< z#md(ZWjCe8E16+UyN(K#?A2xstv)iC85 z_ZKMGX?A>yDoGcaSwqFa2bgarFGuOn7o{Unc%o z^ak#IsP01E@?z3*>U=OErx`{`9Bjp7X$py0m_OwEC-jy}n2Sgmf~r79@(%;*yEt!v zlBxbsAw0lh_4s9CcH*;iTQ}Am^vwQ29D!$;eJZyAY8U{MNDoJdV}n%Ht%R=CYjxnP zwFx+SzG##<*n_g-bITcUtyf%vY`QE}G8i_Hf+cLx^;7K4!fvt8YuZFX0|Tm%ZS-+! z0*&{%e2)S~R5a|*+lxHan(>TO)kBkEI4xE^llhY>LWwP{ShX~yR0*g)+yR~xT8TUK zldn90-f-BZ@}48hIWCtyYex@kg5%aeda!gyKvy2HGHBtnqt<%o)2sHFK8dhoHMCHB z?x1QotEypD>jr^#rrPvF#Gor@<%sQ@xVom2t5j7CtHwli{N>)T{aNKry0uGES*SH! zZEH$1b%9pDgSg{|I_Z{$d`J@_YTByxnbM5c_!G!)N0`t5qA5)be!GlilMgmvgnt@lb(4vI;5pI_h)N)c#CPdj;wNzRBkgsAkdDr zeus*fAfx+~xgd!zGMyd$`qA41(X5A^J^8mZ z=pXpBlH60C8UPqYYuXmxQs2CACRBC&cgx!?GiTbj?WcrNLr^h)36}U1!BEYEL(d+A_7=Olx$ICp4V`*!yk~23)wa3t_vTE$Q3a(Y57O=~+mS@6fYYmHl+vIk!SU zcc$7feKD5M6Z6qxG9VC`MeY3NYG)w^TV$Ca|6-kYGxCR8Lftjp8q(;3MfV*ObrL+8 z+3VdGHsdWM&2!Ji6Oyh_AXk446hxlGULpY!76)DrEBVo`NI!X!xA3Ad7cmSZvPKaj z=K!KPnWEra-)mSu?`XvLdnnyROqC}4YJ%zOFpzjdk^Nth;2WHZ>NSxG95;CQ?1-Nh z+JAgsm?Xe?%mVime7!b8Ef|`>6SSu6<#2l&7#rM5$8D>od%itgr!Q(NjP`*hqh;^q)?;BdHphRQEPKV2_~tq(df;HS!{Iz&=b~gHM#9 z2r2q$V|`OlxCvfR?R7F?M%W0{#b}@iC0j;4dKNPLaN(o_;{B^GNjg7&?$8=IjNzLO z;kgSx(m8u`agplmUU6uGLQo*!Uq5_|8PLAmS%Ql%)j=mKSP`oZAFJwE{rbZB@Yr; z2NP;{JZQJ*rMhfJdHjC+2qLSfv?Zki;aO=v{FU86u)bEK2+SqB2qWDftfk^dj%7Yu z!s(h?NtL7lErTSkrRXX_3bgy(#}^{v4;7!!h7btRNNE*U44#}PL@6%4gp+Ge*NJYJ ztGuM>av(A;LqB%VCT=voz1?h!{;V!$9Q?+Q?6cEqOp46s^t2-6J}rZNTIo0T5w4tD%)<|7G@Q!Z;dOtu#`O&kwxlVLZNT{^#u(j*v$nczb+*Tazm!K7^c0D0Fvp zx81i3Eu`~$vfM5w^ou%k*VD<=5OJYUuK%~I8SDj5?ZKCaKI*O?KfE|mW-X{DW0>Fn zxH%b#sS$j7YLmpgkPnhHyGs}pE6Co1IsJx%!LH#%Nlot5iP;A;cNINBk;2oHB@6kK z8%^+ig4R6KgMgQ>zj2EY>`Nh>r=Rl_swYZRQ~_p=N5K-wROD!BZ1ot%0@}^r5Z}X*f4_WLe2edocpmTO0)pBEubQi8tIFcQKQreCCX#hW2h0PwNI=c1Fv68wNjA$aY znf4%FX7c7c5$;|moiM^_3OW;^1Zb23oKq)t$jvYI;fEdZ)6CUjtm$Peq z)W3}1M7{2S@u(N@Xn{FgHGJ26L9tApfbvauzHR46HIL8B{Z2d0d*)7xsd5$!%k`Kg ziPewmm%Y_Ka=7?qwB+1HR_&B0uSAHUuK8ScCGC1eDC;Z1EV6$dAb4r%QbUCuqH z4bRCN32-})uZ3%jgYei#WVqXbrh>EHQ;%i#IVnS_y`YMp3w_3YdTpc_>TNB z$)hKD@JnAde9)P{pbC6LQ{vBzW1yv`mYr5!wc$+9Cc1K3xfyg+2p{5stdU)pG{)*R zORfn;d{j+dHoYIuuF_-WhCOz?HaZn7tyP6qAzi>qOGHFuPYnaea!}L1IHQkyE5oU& z6*frM)kF1M)JTK5yXwmhn(S26H^`E&xZiNn7yA}O;)wO2;?+eh4Q=@omggx7Q|ftS zMCTc9*(>O-%C!ve%C=s;&FEQn8lQ!+_@Ys2nLC1I52r#J;zb_?-KsunpTgfoNA-nS zD%Bb1WlC-45q3?m5@H1?sD}t2>ss>h6_Z+jK3p;C^&>bQv?@P|&XzxR32E6@@X8PD zJ*AgsUJI*?kKv+4E2X4p7&qjYu&;0O7%~s}!?a$lwlPSjp|YW>qiL3CoS^bj*p}IB zm2a%R!VoFTwoXa~3*pBNIP*ypDOBR-{o?CFr(JiuLU32gPnzsXl}&gM-#)rP6IyV~qPN z{Fy6!Cv|KUC4WrUl+{TAugfxTi)Z5CB*V$lN*p5xr{|4nbni5e&@j$W#+2z7W^G?r zWP%RJO#~`AX>_@ZcQS7d^P#DbN$wdX8(eppL5}O6u1#@PTm%yW0N4Vpfc;Nyt`A1}M;yDlFz-`bKl8A)C#M3gguqcRI}TwdSrjRXZ^pa#*j(W@yY z3K=PRk@j*W^# zsnSwo+1uVqN;{)nv(UxsBxobEVpM{g&Cl|s%Q2=`7CcdVcGu*5eO05j07qx%VT_Ps zf*_NHIY*Tj^%5PfsRx;Gt(&d|Pjtd%b(Llou>LmK`{0s(n-?0fykL+-B>3?wT<;zd z6=4_nO7R1XD&b>;33S+*)oj&GBL4H}3t%;OKvx4COpzTcFy^(|@}mSD3FT11O405i zIQ_9UE$fnL*6T0|BVHe=#OQ<6_Kx%0r*MsM$5_I_DMKOuahLbiSxnMnr$Acx3J$y~*jYEe;|A?2n1oRk8jcSv ziR_e&G(;!X*ERL*wo2U(mw}!7gy{b2cZ-t9(hw!XvXAZtWm&DmI&W&M_eweU30i6D zF!&yjh>IN6z*IsscR$wZDjeYW_T;jTT}Lcxg#!z0jyEH>ssLrK)SKIHTp*@s>ljOp z0{ALTj3+Yb~%OjjpgQk+_2nVgYhW@b0sIy#+c#ytmJ6tj~TKuAErb4S%h zifQ!jQYMQSs+_n#bd*?*qEZ4gHI4OHwT8OoD3lI zGjK1`tOZ&(3fTe0e02Jpjy%_PS*;v0VVvjE#4nO~pOKrfU&nn%cfYw+tsh^ zqin%_)R2U*Cow7lMYoBpTS@SS;@N4lIpTS2G@9_ku{<~hm)1*cB|7Z)M%Q;Hk6IBw ztW8X}8u9?U#47yj(g~rLFAcbm>g}n#)1?#SZ``Rx!i5lc$m*cMHiIPzIE;?=WCvPS zrXSvuxU#=MCn^SOqsk|0ax>SVsx87kfLTL*jTPMXben>DhPKjxzuMawm=&SB^dTX-N5*ElplyF4~9}OIP`9=$oOS<76yj*`TyN=2mLk z_Ps|$`wM5=9ViI?rwx%HaV6UWSr;$R${xla;jxFAvFcyUNbGcvLLUnPV45H81?5X; zi8%V}g;sqOG>a|Z?7SVhF@H3B?{jV~7&cSea{ZI3kH=kqo*+q-1)l5Yk2+wyxdMzK z{yu&y0+y7^v!+0Fga?QMGbIVKLVpD?Fo`cTWTEEFtV zn5 ztpg@{BZtRCEY1KkwKa$n=PED!sty0zO(p+Z$nUr)h1)ti(NGpuW5KVknz z%gTlAGSLPq0bUCO0C;~$#l_Xj*33oI%GFZb+}zB>^fWcL&&)6~9~rc<-h5Duqd|iv2?VZ?8gxBjLQN*i zsThhk^xU~}IGXO!O~n(Lhdj1@O-=_=Pl)YB35z>(d8Qq0oo08vcz3kOH5>?+Ai+e= zj>(@)LRB!tFh}&w>yIcEmFAyQ(W#G}%&TuJF{XFYN8qP=_KjEy^mgrtwXn&9oyv$Q zk`eCh^tN(fj=|KX(ZPzR<(BUm;Y9B_5xx)nu4Ve%i~QpR*EF69j@6n=i+aYadOAv7 zin)aY?hElibdmW0kzT`9i1X+CST->NDmDP2T1xc~Pn*HI+3tSz{Mk8D^4#9MjOM7J z15N=OwgG5jv^p?NTgb)!(`AGy1~^~?@=BL(jRs|$WJK)9s{(N?LK?agW2~&u-uTLl z-KLWEmIP$|ok!Jz#X5EBn>OjTD55HccWDR{64)7DW^*cOfjY;Nnq+A}YFB0lBC^y- zaR8p(;6Ys6a1VYSoMH>{o=Rm1!$SPXEk(fi`-@#2aqVMUCh_Bk+E5IT}2+3W8%lTXHv-uqGb$MI%17Y97%`3%YnS}UtN&3y?mugej_c9Lr&%1bDJn4t!ZYe`Ed7Juh&>b(h-)DXAE(?!09$A|xNZ*KsWi80qi> zowZwY-LRcD^!sDZ$XGnvP6s}=VL2Kf9iyV-7nc?BbE;Ouc3uhQbnv0ndy6wh>uAmg zm$->DN`MBh3qS*K(12j0wP1g95tGw{NN*dCqS_kc-L`!K+T-LDI87v@9QT=&o7V@Y z&KNNP3Ni!U)?keVL9w)N*JOnsqFucOv?m+Hj$F*f;)LB6KlpG^2O#XGO8N2lH-ovY zJ@EStItfw==BVoC8Dwl#EQdlTcTk@Akm$9j1W}_OC_J+fnN_}&=d|#eeWd$5Q`P+3 zN9VG2S1M~yza-vQ!hIf^81S|96Et+iy?6+%U9YrYyJh5<`L6E3_b``j=3rA3DdulTgJ5|wWO*|UK*uN>`!^u!~gxL-9`UyUm{Ai ziMdH&RM@DkFYitLjGYmG@oOKGaB*8`^;#-~N_)LAfN}Df;{D!NL!Xubfc8o*r|#T+ zr4e)|31olg^8yVLDIe$eBQ#vJ0 z4IFS+f*ecY27@nk3??1w-P*@l0P)Ij9MKLd{6AN6qds>}cplCU9N32%`(OsTcHL1A zc4IpAwcw#wwHB zfFR-GKJ;mFG)(b*<+g?bG4BI4PzA-dRn#M`*1gvK-kBENk~rnGS(FbP3yTc}zc<8s z$ETQxaAn}EAsj#|dLPrR=~?`U>u{8UhdNmT%?Eqdsn7df9w=u=7(RbCfqzIu*9>pu zlVnc-{;J^sN5_3<$GjyC3h{Mo5WNFf@BS3NCCuom_jlv<10Z_c2Rh=xm(~5U3vQB~ zUMw1V0dDhHeQ~qPRj&7N;5U+1m+>lthTAtBou84Lr;So~RIPn#vCvkeLHS7f-Fb04 zrHyHmRu%hts@o$5hQv1fTyQaI-dp(q2Bor!bABxJDJBEGu2F}L^sFfZyq=?Tm2bFl zL2?+2?Lud8zT2;dmcTUk5W#NZu$q9Dh-3Vpr#S<;Y;`r@MB(slhte{eT_P~Uv#uw< z%ija}cI6*JSogLt8eH5U^Suz&S8{`IZD2?{U}C$r;LNT_&L+&NR-hf;yo-s=RPuqH993{2S*oX69;Fre>Xb)w*m}`1#^<* z6+zK(__@@N2)bJ?J81m!6**r^YAVt?*nUQtcE$qfLW;`OE^4dhSy%-EyDtA9E7H6| z!+a|tbp^_pqe&Rzd0Ks8D;ky^I{h9r^>K6xUnNAs;@-^U=ozNUVOO$V7~>%h!qz5I z)9SM5=f87l?Ov)Ul(I&zQR@6;6 zyt;4H<;0>}iv}a3w18w6);AgMD4--7*mmb^v_G0^N9`t#>)7+)qd`0o_asb8_au0L zU4Q+Avz6Ga^&S2ly+iU)=>mA7z=ZvdE0#rrdKz}~9GSdOaAC~zn-<04aoI)bJm&xMv{-)bFvtGie%Eo(WPgH z>(g#xCl$hj$f~!`XJ31wz7}O-LmQMCv$`3IANxPt9S{@ePR*WhVtfEX?R;mrDm`Nx z)368;Ic65$D?Xo>>34L=PZ}QEV)McgGr0O>KzK)|WG@Kff?Ssr{eclyjec*Dj$9|x?gf*4E5PS0)H@D2`a*`a!8fkrm$^o9Z{{Bs z&{@tS`|g09`MNl#72AO3Aj&mg+|$ZESH_{x$&08oJO2J?z9Shm^iW5DznSjJ*dtHA zw5xkK8Czlf@{?uDblKac=@{Z@E>z;RDXy6&D<Ed@OM&N4(b%X1gAlsbQ($Xy0x9q4R4s0-?1~^`;e(fnicOJAmk7^JOr$SxE zX$M$-jdAQa&zBH=ge5(O%$-_CKOpAnu)!X5JOUAd98-9B@)~{d-&&O^)m?Uh^Rlt7 z$!NnVGMhmUb)knE)bNK4t`yb-Ez>y{`_8E1TC+Vj*CD7Jnp-kli6LP;KSyS)(U?)b zD$Bf*ze+vWzHpTsJtk^ous&6m%~~XCB(MSvqCf)#%Tr}|Pn&ohUtOR1-j;@l^L$73 zhC>vKkdL+JrdV+60i}Sqd@}l-3q0HgJFh4;0-UHXqNg@bu2V!|7SUbUNDGA*p5`y)(mhz1RNr6t*lT z6q(ame@qlj;Y*{l`95Qzne!AvV4FOr<^f9$%K<#H3Q^)$lKowpUw%`x0Ty+}&>?XVc`u5`iHhAOZOAW1UNZ$MxP_DYB6gpEu% zm4i?{=i@!mg`Xn1!F~HK7t5%~|MbqDaVcO9@DK%&TN{mJv8 z8pOgeLC^q_QkdC5c6YDu(JvnAnIm_Vg?8jG{ugP~ed!4v1xcl@(Wt_67w`UbM?S9> zsP+r|U38w#&zl1)udSR%)%wX>XwDKbhmnL-9g!oiZic-C)UC4GwG4jNd5 zs`y|A68_TF8ckqWnvKO9>>VDLD};+lgnI0>!FyVmvt~WfY$towj}1Az2#zGgPvv z9rC=(^q4}wNVht|3}$vz=b2il=P-O;%oCQvcKkvqtOf4@3n}8I9e-B&)ptvTp?oy^ z@}-FvQxJ&C-;`H*xt58lftfndm3prRqeWaiAp}>~8a_AYX=tb?5~d!l`Jt*O3!Y{X zC>gJCu_@~%y*Mpbr(@Ad_w|^TA*UC=1VWZPFIN5~vryUay$1u4fPnwYHHVOwA)O#U zYxtaD@eaE!Fx#@y%l`*ue{V!|9bx`3JopJNBLnm_Im48m=mOy3LZe=VN9FDfebcxL zzJ*r)2d}kELE0{panB@w3nbpV$jp`pK)xqp#P=JlcE8Ys*>BVR@Pc}SV4g4wNjUDw zCp|G1ay?J*sNtKhV(m*bCgQ`56EoWiNjpi^QLG|#e@ufmVQNI5 z_(oV$*dmn&Za2_@*sWxPq6(TW@AQ)1D}M0^`rM~6(ZDm1{^%W z)LO_@A8~6I3Uo;G7@q1B0!@2&uF_FO$lLYszA5Ttr~G_*%FGN5FOmJkjwOSHmQ2m} z`9xSUG1pn_ULk7w=GmWtPvBKEi8E+wDJBKZ?Wx|uG})Ca6*Uu|I=r#(KWSRPUVjR@ z(-`OcY%}-t{;4&)*r+sMRfhJ8?deVk6h{0r&}a@}_Zk2NxdouA3ECflhB>IGU(Lwa z_E(f!lq7Gz%7PMh3+W9V^q7%SSrmoB3!{gBSQ10_3LvkFrTh#-uu|>-Dwxp1lb5Zl z07yHw1)K!i57IX!EU1q}cy*I~d!(qU9DU4?Iq&bAI(#T_A?$DU_~~t&(}WE)-V43D zRo}G@M0jLWlbA0;%&(w+UB#WTjFu>>{blO3x6~mI#b}8yUcT!scvc#pyz`4Xs3d z&8iKyTYhzRNxRH;7AgTf++$~$28gG%-5IoWogDBXS_`~W#1k!Ji3F}2#)s;!AotB*R zk?HXyf_=?jxabYC)DDrC7~5EOqqkZ8>6*@H|mfI7*yn!0`; zs<20h1QnJ7Epgax`HmYcefiCo@%?xG2@rDgFQz64u$9mM@uAByXfLdQ9{MV%%@yUZ znT?U7<9`zykjVbM<*3R#tg;|lLqB@xAho^z|<4pOAHkCJ!%rr=R{!TOZ3Z)uwU1W-Ma=>%u{OBt#SBE<^Pg z`rws>{|}O;9xsFHtYEFu3t=)0MOTnNIm|46=w}w>qMiyZwyeE{g833JHZ-my*-=JSV@VKXvz05NF8CVZOIFk73@xuL{)Cx!14QD)?IViCBzg z)=&8hZE)CfzBf{qLX?Dkw8KiAm_&C!_zCc?kG^dLjUN(<`-k^(P!vr$cf==AspR!w z^UfWq3UWH<{KyCHDR*ToAyVU6TYVx@%i8{x;*T>pwU>#(wj8+C6Lm90Z*tR2I^@ut znL@_;_Xv0$x02SUNjE%xs60R~dnveYv8YTOnmQg|Rv!;u6P-k5D@H;-V-oxB+Rt^i zTYDajmpm68)qcyHb*vWp@@0$NXh>4 zuEppRSg%3l@PD)!|4#mUTiBoEeV`2V7y0i^V!uQD zUVi@*A{Xo55PvPk|4#mUX7YD!9;eJQ>y-M{b!W}5h{)O-#YgWJG{C(-? zPZR*)D+K`XkA)VjqUHmzkB3AiKjtL55Ml=Z~pmr`oA0ZKdAwL e0oK3p{%=#SBnt_eW&i*J=mQIysS6xGzx_YWQ&uJb literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/HeaderFooters/HeadersFooters.doc b/TestData/DocumentElements/HeaderFooters/HeadersFooters.doc new file mode 100644 index 0000000000000000000000000000000000000000..71f838ec65210dd08df0e4d2b0098e6a8eabc3a4 GIT binary patch literal 22528 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 A7XSbN literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/MathObjects/MathObjects.docx b/TestData/DocumentElements/MathObjects/MathObjects.docx new file mode 100644 index 0000000000000000000000000000000000000000..94208d73679a1f31c4b7f16381b5985a4b7f6d06 GIT binary patch literal 15198 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 literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/Tables/TablesGet.docx b/TestData/DocumentElements/Tables/TablesGet.docx new file mode 100644 index 0000000000000000000000000000000000000000..c1c542681064adf735d3b939ccbd96a0b9249f2b GIT binary patch literal 12278 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 literal 0 HcmV?d00001 diff --git a/TestData/DocumentElements/Text/SampleWordDocument.docx b/TestData/DocumentElements/Text/SampleWordDocument.docx new file mode 100644 index 0000000000000000000000000000000000000000..6428877a01cf3d79165027d3c22809196423cf39 GIT binary patch literal 79138 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 U$Y1|N1HMp!28Ks^V5bKBAHJMxumAu6 literal 0 HcmV?d00001 diff --git a/asposewordscloud/__init__.py b/asposewordscloud/__init__.py new file mode 100644 index 00000000..c7034e19 --- /dev/null +++ b/asposewordscloud/__init__.py @@ -0,0 +1,186 @@ +# coding: utf-8 + +# flake8: noqa + +from __future__ import absolute_import + +# import apis into sdk package +from asposewordscloud.apis.words_api import WordsApi + +# import ApiClient +from asposewordscloud.api_client import ApiClient +from asposewordscloud.configuration import Configuration +# import models into sdk package +from asposewordscloud.models.aspose_response import AsposeResponse +from asposewordscloud.models.bookmark_data import BookmarkData +from asposewordscloud.models.bookmarks_outline_level_data import BookmarksOutlineLevelData +from asposewordscloud.models.classification_result import ClassificationResult +from asposewordscloud.models.compare_data import CompareData +from asposewordscloud.models.document import Document +from asposewordscloud.models.document_entry import DocumentEntry +from asposewordscloud.models.document_entry_list import DocumentEntryList +from asposewordscloud.models.document_position import DocumentPosition +from asposewordscloud.models.document_stat_data import DocumentStatData +from asposewordscloud.models.downsample_options_data import DownsampleOptionsData +from asposewordscloud.models.font_info import FontInfo +from asposewordscloud.models.footnotes_stat_data import FootnotesStatData +from asposewordscloud.models.graphics_quality_options_data import GraphicsQualityOptionsData +from asposewordscloud.models.link import Link +from asposewordscloud.models.link_element import LinkElement +from asposewordscloud.models.load_web_document_data import LoadWebDocumentData +from asposewordscloud.models.metafile_rendering_options_data import MetafileRenderingOptionsData +from asposewordscloud.models.modification_operation_result import ModificationOperationResult +from asposewordscloud.models.outline_options_data import OutlineOptionsData +from asposewordscloud.models.page_number import PageNumber +from asposewordscloud.models.page_stat_data import PageStatData +from asposewordscloud.models.paragraph_insert import ParagraphInsert +from asposewordscloud.models.pdf_digital_signature_details_data import PdfDigitalSignatureDetailsData +from asposewordscloud.models.pdf_encryption_details_data import PdfEncryptionDetailsData +from asposewordscloud.models.preferred_width import PreferredWidth +from asposewordscloud.models.protection_data import ProtectionData +from asposewordscloud.models.protection_request import ProtectionRequest +from asposewordscloud.models.replace_text_request import ReplaceTextRequest +from asposewordscloud.models.save_options_data import SaveOptionsData +from asposewordscloud.models.save_result import SaveResult +from asposewordscloud.models.search_result import SearchResult +from asposewordscloud.models.split_document_result import SplitDocumentResult +from asposewordscloud.models.story_child_nodes import StoryChildNodes +from asposewordscloud.models.string_format_data import StringFormatData +from asposewordscloud.models.table_cell_insert import TableCellInsert +from asposewordscloud.models.table_insert import TableInsert +from asposewordscloud.models.table_row_insert import TableRowInsert +from asposewordscloud.models.watermark_text import WatermarkText +from asposewordscloud.models.xml_color import XmlColor +from asposewordscloud.models.available_fonts_response import AvailableFontsResponse +from asposewordscloud.models.bookmark import Bookmark +from asposewordscloud.models.bookmark_response import BookmarkResponse +from asposewordscloud.models.bookmarks import Bookmarks +from asposewordscloud.models.bookmarks_response import BookmarksResponse +from asposewordscloud.models.border import Border +from asposewordscloud.models.border_response import BorderResponse +from asposewordscloud.models.borders_collection import BordersCollection +from asposewordscloud.models.borders_response import BordersResponse +from asposewordscloud.models.classification_response import ClassificationResponse +from asposewordscloud.models.comment_link import CommentLink +from asposewordscloud.models.comment_response import CommentResponse +from asposewordscloud.models.comments_collection import CommentsCollection +from asposewordscloud.models.comments_response import CommentsResponse +from asposewordscloud.models.doc_save_options_data import DocSaveOptionsData +from asposewordscloud.models.document_properties import DocumentProperties +from asposewordscloud.models.document_properties_response import DocumentPropertiesResponse +from asposewordscloud.models.document_property import DocumentProperty +from asposewordscloud.models.document_property_response import DocumentPropertyResponse +from asposewordscloud.models.document_response import DocumentResponse +from asposewordscloud.models.drawing_object_collection import DrawingObjectCollection +from asposewordscloud.models.drawing_object_response import DrawingObjectResponse +from asposewordscloud.models.drawing_objects_response import DrawingObjectsResponse +from asposewordscloud.models.field_collection import FieldCollection +from asposewordscloud.models.field_names import FieldNames +from asposewordscloud.models.field_names_response import FieldNamesResponse +from asposewordscloud.models.field_response import FieldResponse +from asposewordscloud.models.fields_response import FieldsResponse +from asposewordscloud.models.file_link import FileLink +from asposewordscloud.models.fixed_page_save_options_data import FixedPageSaveOptionsData +from asposewordscloud.models.font import Font +from asposewordscloud.models.font_response import FontResponse +from asposewordscloud.models.footnote_collection import FootnoteCollection +from asposewordscloud.models.footnote_response import FootnoteResponse +from asposewordscloud.models.footnotes_response import FootnotesResponse +from asposewordscloud.models.form_field_collection import FormFieldCollection +from asposewordscloud.models.form_field_response import FormFieldResponse +from asposewordscloud.models.form_fields_response import FormFieldsResponse +from asposewordscloud.models.header_footer_link import HeaderFooterLink +from asposewordscloud.models.header_footer_link_collection import HeaderFooterLinkCollection +from asposewordscloud.models.header_footer_response import HeaderFooterResponse +from asposewordscloud.models.header_footers_response import HeaderFootersResponse +from asposewordscloud.models.html_save_options_data import HtmlSaveOptionsData +from asposewordscloud.models.hyperlink import Hyperlink +from asposewordscloud.models.hyperlink_response import HyperlinkResponse +from asposewordscloud.models.hyperlinks import Hyperlinks +from asposewordscloud.models.hyperlinks_response import HyperlinksResponse +from asposewordscloud.models.node_link import NodeLink +from asposewordscloud.models.odt_save_options_data import OdtSaveOptionsData +from asposewordscloud.models.office_math_object_response import OfficeMathObjectResponse +from asposewordscloud.models.office_math_objects_collection import OfficeMathObjectsCollection +from asposewordscloud.models.office_math_objects_response import OfficeMathObjectsResponse +from asposewordscloud.models.ooxml_save_options_data import OoxmlSaveOptionsData +from asposewordscloud.models.page_setup import PageSetup +from asposewordscloud.models.paragraph_link_collection import ParagraphLinkCollection +from asposewordscloud.models.paragraph_link_collection_response import ParagraphLinkCollectionResponse +from asposewordscloud.models.paragraph_response import ParagraphResponse +from asposewordscloud.models.protection_data_response import ProtectionDataResponse +from asposewordscloud.models.protection_response import ProtectionResponse +from asposewordscloud.models.replace_text_response import ReplaceTextResponse +from asposewordscloud.models.revisions_modification_response import RevisionsModificationResponse +from asposewordscloud.models.rtf_save_options_data import RtfSaveOptionsData +from asposewordscloud.models.run_response import RunResponse +from asposewordscloud.models.runs import Runs +from asposewordscloud.models.runs_response import RunsResponse +from asposewordscloud.models.save_response import SaveResponse +from asposewordscloud.models.search_response import SearchResponse +from asposewordscloud.models.search_results_collection import SearchResultsCollection +from asposewordscloud.models.section import Section +from asposewordscloud.models.section_link import SectionLink +from asposewordscloud.models.section_link_collection import SectionLinkCollection +from asposewordscloud.models.section_link_collection_response import SectionLinkCollectionResponse +from asposewordscloud.models.section_page_setup_response import SectionPageSetupResponse +from asposewordscloud.models.section_response import SectionResponse +from asposewordscloud.models.split_document_response import SplitDocumentResponse +from asposewordscloud.models.stat_data_response import StatDataResponse +from asposewordscloud.models.table_cell_format import TableCellFormat +from asposewordscloud.models.table_cell_format_response import TableCellFormatResponse +from asposewordscloud.models.table_cell_response import TableCellResponse +from asposewordscloud.models.table_link_collection import TableLinkCollection +from asposewordscloud.models.table_link_collection_response import TableLinkCollectionResponse +from asposewordscloud.models.table_properties import TableProperties +from asposewordscloud.models.table_properties_response import TablePropertiesResponse +from asposewordscloud.models.table_response import TableResponse +from asposewordscloud.models.table_row_format import TableRowFormat +from asposewordscloud.models.table_row_format_response import TableRowFormatResponse +from asposewordscloud.models.table_row_response import TableRowResponse +from asposewordscloud.models.text_item import TextItem +from asposewordscloud.models.text_items import TextItems +from asposewordscloud.models.text_items_response import TextItemsResponse +from asposewordscloud.models.text_save_options_data import TextSaveOptionsData +from asposewordscloud.models.word_ml_save_options_data import WordMLSaveOptionsData +from asposewordscloud.models.words_api_error_response import WordsApiErrorResponse +from asposewordscloud.models.words_api_link import WordsApiLink +from asposewordscloud.models.xaml_flow_save_options_data import XamlFlowSaveOptionsData +from asposewordscloud.models.comment import Comment +from asposewordscloud.models.drawing_object_link import DrawingObjectLink +from asposewordscloud.models.epub_save_options_data import EpubSaveOptionsData +from asposewordscloud.models.field_link import FieldLink +from asposewordscloud.models.footnote_link import FootnoteLink +from asposewordscloud.models.form_field import FormField +from asposewordscloud.models.header_footer import HeaderFooter +from asposewordscloud.models.html_fixed_save_options_data import HtmlFixedSaveOptionsData +from asposewordscloud.models.image_save_options_data import ImageSaveOptionsData +from asposewordscloud.models.mhtml_save_options_data import MhtmlSaveOptionsData +from asposewordscloud.models.office_math_link import OfficeMathLink +from asposewordscloud.models.paragraph import Paragraph +from asposewordscloud.models.paragraph_link import ParagraphLink +from asposewordscloud.models.pcl_save_options_data import PclSaveOptionsData +from asposewordscloud.models.pdf_save_options_data import PdfSaveOptionsData +from asposewordscloud.models.ps_save_options_data import PsSaveOptionsData +from asposewordscloud.models.run_link import RunLink +from asposewordscloud.models.svg_save_options_data import SvgSaveOptionsData +from asposewordscloud.models.table import Table +from asposewordscloud.models.table_cell import TableCell +from asposewordscloud.models.table_link import TableLink +from asposewordscloud.models.table_row import TableRow +from asposewordscloud.models.xaml_fixed_save_options_data import XamlFixedSaveOptionsData +from asposewordscloud.models.xps_save_options_data import XpsSaveOptionsData +from asposewordscloud.models.bmp_save_options_data import BmpSaveOptionsData +from asposewordscloud.models.drawing_object import DrawingObject +from asposewordscloud.models.emf_save_options_data import EmfSaveOptionsData +from asposewordscloud.models.field import Field +from asposewordscloud.models.footnote import Footnote +from asposewordscloud.models.form_field_checkbox import FormFieldCheckbox +from asposewordscloud.models.form_field_drop_down import FormFieldDropDown +from asposewordscloud.models.form_field_text_input import FormFieldTextInput +from asposewordscloud.models.gif_save_options_data import GifSaveOptionsData +from asposewordscloud.models.jpeg_save_options_data import JpegSaveOptionsData +from asposewordscloud.models.office_math_object import OfficeMathObject +from asposewordscloud.models.png_save_options_data import PngSaveOptionsData +from asposewordscloud.models.run import Run +from asposewordscloud.models.tiff_save_options_data import TiffSaveOptionsData diff --git a/asposewordscloud/api_client.py b/asposewordscloud/api_client.py new file mode 100644 index 00000000..656ced95 --- /dev/null +++ b/asposewordscloud/api_client.py @@ -0,0 +1,631 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +#

+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- + +from __future__ import absolute_import + +import datetime +import json +import mimetypes +from multiprocessing.pool import ThreadPool +import os +import re +import tempfile + +# python 2 and python 3 compatibility library +from six.moves.urllib.parse import quote +import six + +from asposewordscloud.configuration import Configuration +import asposewordscloud.models +from asposewordscloud import rest + + +class ApiClient(object): + """Generic API client + + Swagger generic API client. This client handles the client- + server communication, and is invariant across implementations. + + :param configuration: .Configuration object for this client + :param header_name: a header to pass when making calls to the API. + :param header_value: a header value to pass when making calls to + the API. + :param cookie: a cookie to include in the header when making calls + to the API + """ + + PRIMITIVE_TYPES = (float, bool, bytes, six.text_type) + six.integer_types + NATIVE_TYPES_MAPPING = { + 'int': int, + 'long': int if six.PY3 else long, #pylint: disable=undefined-variable + 'float': float, + 'str': str, + 'bool': bool, + 'date': datetime.date, + 'datetime': datetime.datetime, + 'object': object, + } + + def __init__(self, configuration=None, header_name=None, header_value=None, + cookie=None): + if configuration is None: + configuration = Configuration() + self.configuration = configuration + + self.pool = ThreadPool() + self.rest_client = rest.RESTClientObject(configuration) + self.default_headers = {'x-aspose-client': 'python sdk', 'x-aspose-version': '18.7'} + if header_name is not None: + self.default_headers[header_name] = header_value + self.cookie = cookie + # Set default User-Agent. + self.user_agent = 'python sdk 18.7' + + def __del__(self): + self.pool.close() + self.pool.join() + + @property + def user_agent(self): + """User agent for this API client""" + return self.default_headers['User-Agent'] + + @user_agent.setter + def user_agent(self, value): + self.default_headers['User-Agent'] = value + + def set_default_header(self, header_name, header_value): + """Setting default header""" + self.default_headers[header_name] = header_value + + def __call_api( + self, resource_path, method, path_params=None, + query_params=None, header_params=None, body=None, post_params=None, + files=None, response_type=None, auth_settings=None, + _return_http_data_only=None, collection_formats=None, + _preload_content=True, _request_timeout=None): + """Call api method""" + config = self.configuration + + # header parameters + header_params = header_params or {} + header_params.update(self.default_headers) + if self.cookie: + header_params['Cookie'] = self.cookie + if header_params: + header_params = self.sanitize_for_serialization(header_params) + header_params = dict(self.parameters_to_tuples(header_params, + collection_formats)) + + # path parameters + if path_params: + path_params = self.sanitize_for_serialization(path_params) + path_params = self.parameters_to_tuples(path_params, + collection_formats) + for k, v in path_params: + # specified safe chars, encode everything + resource_path = resource_path.replace( + '{%s}' % k, + quote(str(v), safe=config.safe_chars_for_path_param) + ) + + # query parameters + if query_params: + query_params = self.sanitize_for_serialization(query_params) + query_params = self.parameters_to_tuples(query_params, + collection_formats) + + # post parameters + if post_params or files: + post_params = self.prepare_post_parameters(post_params, files) + post_params = self.sanitize_for_serialization(post_params) + post_params = self.parameters_to_tuples(post_params, + collection_formats) + + # auth setting + self.update_params_for_auth(header_params, query_params, auth_settings) + + # body + if body: + body = self.sanitize_for_serialization(body) + + # request url + url = '' + if six.PY3: + url = self.configuration.host + '/' + self.configuration.api_version + resource_path + else: + url = (self.configuration.host + '/' + self.configuration.api_version + resource_path).encode('utf8') + + # perform request and return response + response_data = self.request( + method, url, query_params=query_params, headers=header_params, + post_params=post_params, body=body, + _preload_content=_preload_content, + _request_timeout=_request_timeout) + + self.last_response = response_data + + return_data = self.deserialize(response_data, response_type) + + if _return_http_data_only: + return return_data + return (return_data, response_data.status, + response_data.getheaders()) + + def sanitize_for_serialization(self, obj): + """Builds a JSON POST object. + + If obj is None, return None. + If obj is str, int, long, float, bool, return directly. + If obj is datetime.datetime, datetime.date + convert to string in iso8601 format. + If obj is list, sanitize each element in the list. + If obj is dict, return the dict. + If obj is swagger model, return the properties dict. + + :param obj: The data to serialize. + :return: The serialized form of data. + """ + if obj is None: + return None + elif isinstance(obj, self.PRIMITIVE_TYPES): + return obj + elif isinstance(obj, list): + return [self.sanitize_for_serialization(sub_obj) + for sub_obj in obj] + elif isinstance(obj, tuple): + return tuple(self.sanitize_for_serialization(sub_obj) + for sub_obj in obj) + elif isinstance(obj, (datetime.datetime, datetime.date)): + return obj.isoformat() + + if isinstance(obj, dict): + obj_dict = obj + else: + # Convert model obj to dict except + # attributes `swagger_types`, `attribute_map` + # and attributes which value is not None. + # Convert attribute name to json key in + # model definition for request. + obj_dict = {obj.attribute_map[attr]: getattr(obj, attr) + for attr, _ in six.iteritems(obj.swagger_types) + if getattr(obj, attr) is not None} + + return {key: self.sanitize_for_serialization(val) + for key, val in six.iteritems(obj_dict)} + + def deserialize(self, response, response_type): + """Deserializes response into an object. + + :param response: RESTResponse object to be deserialized. + :param response_type: class literal for + deserialized object, or string of class name. + + :return: deserialized object. + """ + # handle file downloading + # save response body into a tmp file and return the instance + if response_type == "file": + return self.__deserialize_file(response) + + # fetch data from response object + try: + data = json.loads(response.data.decode('utf8')) if six.PY3 else: json.loads(response.data) + except ValueError: + data = response.data + + return self.__deserialize(data, response_type) + + def __deserialize(self, data, klass): + """Deserializes dict, list, str into an object. + + :param data: dict, list or str. + :param klass: class literal, or string of class name. + + :return: object. + """ + if data is None: + return None + + if type(klass) == str: + if klass.startswith('list['): + sub_kls = re.match(r'list\[(.*)\]', klass).group(1) + return [self.__deserialize(sub_data, sub_kls) + for sub_data in data] + + if klass.startswith('dict('): + sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2) + return {k: self.__deserialize(v, sub_kls) + for k, v in six.iteritems(data)} + + # convert str to class + if klass in self.NATIVE_TYPES_MAPPING: + klass = self.NATIVE_TYPES_MAPPING[klass] + else: + klass = getattr(asposewordscloud.models, klass) + + if klass in self.PRIMITIVE_TYPES: + return self.__deserialize_primitive(data, klass) + elif klass == object: + return self.__deserialize_object(data) + elif klass == datetime.date: + return self.__deserialize_date(data) + elif klass == datetime.datetime: + return self.__deserialize_datatime(data) + else: + return self.__deserialize_model(data, klass) + + def call_api(self, resource_path, method, + path_params=None, query_params=None, header_params=None, + body=None, post_params=None, files=None, + response_type=None, auth_settings=None, is_async=None, + _return_http_data_only=None, collection_formats=None, + _preload_content=True, _request_timeout=None): + """Makes the HTTP request (synchronous) and returns deserialized data. + + To make an async request, set the async parameter. + + :param resource_path: Path to method endpoint. + :param method: Method to call. + :param path_params: Path parameters in the url. + :param query_params: Query parameters in the url. + :param header_params: Header parameters to be + placed in the request header. + :param body: Request body. + :param post_params dict: Request post form parameters, + for `application/x-www-form-urlencoded`, `multipart/form-data`. + :param auth_settings list: Auth Settings names for the request. + :param response: Response data type. + :param files dict: key -> filename, value -> filepath, + for `multipart/form-data`. + :param is_async bool: execute request asynchronously + :param _return_http_data_only: response data without head status code + and headers + :param collection_formats: dict of collection formats for path, query, + header, and post parameters. + :param _preload_content: if False, the urllib3.HTTPResponse object will + be returned without reading/decoding response + data. Default is True. + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :return: + If is_async parameter is True, + the request will be called asynchronously. + The method will return the request thread. + If parameter is_async is False or missing, + then the method will return the response directly. + """ + if not is_async: + return self.__call_api(resource_path, method, + path_params, query_params, header_params, + body, post_params, files, + response_type, auth_settings, + _return_http_data_only, collection_formats, + _preload_content, _request_timeout) + else: + thread = self.pool.apply_async(self.__call_api, (resource_path, + method, path_params, query_params, + header_params, body, + post_params, files, + response_type, auth_settings, + _return_http_data_only, + collection_formats, + _preload_content, _request_timeout)) + return thread + + def request(self, method, url, query_params=None, headers=None, + post_params=None, body=None, _preload_content=True, + _request_timeout=None): + """Makes the HTTP request using RESTClient.""" + if method == "GET": + return self.rest_client.GET(url, + query_params=query_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + headers=headers) + elif method == "HEAD": + return self.rest_client.HEAD(url, + query_params=query_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + headers=headers) + elif method == "OPTIONS": + return self.rest_client.OPTIONS(url, + query_params=query_params, + headers=headers, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + elif method == "POST": + return self.rest_client.POST(url, + query_params=query_params, + headers=headers, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + elif method == "PUT": + return self.rest_client.PUT(url, + query_params=query_params, + headers=headers, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + elif method == "PATCH": + return self.rest_client.PATCH(url, + query_params=query_params, + headers=headers, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + elif method == "DELETE": + return self.rest_client.DELETE(url, + query_params=query_params, + headers=headers, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + else: + raise ValueError( + "http method must be `GET`, `HEAD`, `OPTIONS`," + " `POST`, `PATCH`, `PUT` or `DELETE`." + ) + + def parameters_to_tuples(self, params, collection_formats): + """Get parameters as list of tuples, formatting collections. + + :param params: Parameters as dict or list of two-tuples + :param dict collection_formats: Parameter collection formats + :return: Parameters as list of tuples, collections formatted + """ + new_params = [] + if collection_formats is None: + collection_formats = {} + for k, v in six.iteritems(params) if isinstance(params, dict) else params: # noqa: E501 + if k in collection_formats: + collection_format = collection_formats[k] + if collection_format == 'multi': + new_params.extend((k, value) for value in v) + else: + if collection_format == 'ssv': + delimiter = ' ' + elif collection_format == 'tsv': + delimiter = '\t' + elif collection_format == 'pipes': + delimiter = '|' + else: # csv is the default + delimiter = ',' + new_params.append( + (k, delimiter.join(str(value) for value in v))) + else: + new_params.append((k, v)) + return new_params + + def prepare_post_parameters(self, post_params=None, files=None): + """Builds form parameters. + + :param post_params: Normal form parameters. + :param files: File parameters. + :return: Form parameters with files. + """ + params = [] + + if post_params: + params = post_params + + if files: + for k, v in files: + if not v: + continue + file_names = v if type(v) is list else [v] + for n in file_names: + with open(n, 'rb') as f: + filename = os.path.basename(f.name) + filedata = f.read() + mimetype = (mimetypes.guess_type(filename)[0] or + 'application/octet-stream') + params.append( + tuple([k, tuple([filename, filedata, mimetype])])) + + return params + + def select_header_accept(self, accepts): + """Returns `Accept` based on an array of accepts provided. + + :param accepts: List of headers. + :return: Accept (e.g. application/json). + """ + if not accepts: + return + + accepts = [x.lower() for x in accepts] + + if 'application/json' in accepts: + return 'application/json' + else: + return ', '.join(accepts) + + def select_header_content_type(self, content_types): + """Returns `Content-Type` based on an array of content_types provided. + + :param content_types: List of content-types. + :return: Content-Type (e.g. application/json). + """ + if not content_types: + return 'application/json' + + content_types = [x.lower() for x in content_types] + + if 'application/json' in content_types or '*/*' in content_types: + return 'application/json' + else: + return content_types[0] + + def update_params_for_auth(self, headers, querys, auth_settings): + """Updates header and query params based on authentication setting. + + :param headers: Header parameters dict to be updated. + :param querys: Query parameters tuple list to be updated. + :param auth_settings: Authentication setting identifiers list. + """ + if not auth_settings: + return + + for auth in auth_settings: + auth_setting = self.configuration.auth_settings().get(auth) + if auth_setting: + if not auth_setting['value']: + continue + elif auth_setting['in'] == 'header': + headers[auth_setting['key']] = auth_setting['value'] + elif auth_setting['in'] == 'query': + querys.append((auth_setting['key'], auth_setting['value'])) + else: + raise ValueError( + 'Authentication token must be in `query` or `header`' + ) + + def __deserialize_file(self, response): + """Deserializes body to file + + Saves response body into a file in a temporary folder, + using the filename from the `Content-Disposition` header if provided. + + :param response: RESTResponse. + :return: file path. + """ + fd, path = tempfile.mkstemp(dir=self.configuration.temp_folder_path) + os.close(fd) + os.remove(path) + + content_disposition = response.getheader("Content-Disposition") + if content_disposition: + filename = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?', + content_disposition).group(1) + filename = filename.replace('/', '_') + path = os.path.join(os.path.dirname(path), filename) + + with open(path, "wb") as f: + f.write(response.data) + + return path + + def __deserialize_primitive(self, data, klass): + """Deserializes string to primitive type. + + :param data: str. + :param klass: class literal. + + :return: int, long, float, str, bool. + """ + try: + return klass(data) + except UnicodeEncodeError: + if not six.PY3: + return data.encode('utf8') + return six.u(data) + except TypeError: + return data + + def __deserialize_object(self, value): + """Return a original value. + + :return: object. + """ + return value + + def __deserialize_date(self, string): + """Deserializes string to date. + + :param string: str. + :return: date. + """ + try: + from dateutil.parser import parse + return parse(string).date() + except ImportError: + return string + except ValueError: + raise rest.ApiException( + status=0, + reason="Failed to parse `{0}` as date object".format(string) + ) + + def __deserialize_datatime(self, string): + """Deserializes string to datetime. + + The string should be in iso8601 datetime format. + + :param string: str. + :return: datetime. + """ + try: + from dateutil.parser import parse + return parse(re.search('[0-9]', string).group(0)) + except ImportError: + return string + except ValueError: + raise rest.ApiException( + status=0, + reason=( + "Failed to parse `{0}` as datetime object" + .format(string) + ) + ) + + def __deserialize_model(self, data, klass): + """Deserializes list or dict to model. + + :param data: dict, list. + :param klass: class literal. + :return: model object. + """ + + if not klass.swagger_types and not hasattr(klass, + 'get_real_child_model'): + return data + + kwargs = {} + if klass.swagger_types is not None: + for attr, attr_type in six.iteritems(klass.swagger_types): + if (data is not None and + klass.attribute_map[attr] in data and + isinstance(data, (list, dict))): + value = data[klass.attribute_map[attr]] + kwargs[attr] = self.__deserialize(value, attr_type) + + instance = klass(**kwargs) + + if hasattr(instance, 'get_real_child_model'): + klass_name = instance.get_real_child_model(data) + if klass_name: + instance = self.__deserialize(data, klass_name) + return instance diff --git a/asposewordscloud/apis/__init__.py b/asposewordscloud/apis/__init__.py new file mode 100644 index 00000000..f2a2914b --- /dev/null +++ b/asposewordscloud/apis/__init__.py @@ -0,0 +1,6 @@ +from __future__ import absolute_import + +# flake8: noqa + +# import apis into api package +from asposewordscloud.apis.words_api import WordsApi diff --git a/asposewordscloud/apis/words_api.py b/asposewordscloud/apis/words_api.py new file mode 100644 index 00000000..f63a46ae --- /dev/null +++ b/asposewordscloud/apis/words_api.py @@ -0,0 +1,16829 @@ +# coding: utf-8 + +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- + + +from __future__ import absolute_import + +import re # noqa: F401 + +# python 2 and python 3 compatibility library +import six +from asposewordscloud.rest import ApiException +from asposewordscloud.api_client import ApiClient + + +class WordsApi(object): + """ + Aspose.Words for Cloud API + + :param api_client: an api client to perfom http requests + """ + def __init__(self, api_client=None): + if api_client is None: + api_client = ApiClient() + self.api_client = api_client + self.__request_token() + + def accept_all_revisions(self, request, **kwargs): # noqa: E501 + """Accept all revisions in document # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: RevisionsModificationResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.accept_all_revisions_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.accept_all_revisions_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def accept_all_revisions_with_http_info(self, request, **kwargs): # noqa: E501 + """Accept all revisions in document # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param AcceptAllRevisionsRequest request object with parameters + :return: RevisionsModificationResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method accept_all_revisions" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `accept_all_revisions`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/revisions/acceptAll' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='RevisionsModificationResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def classify(self, request, **kwargs): # noqa: E501 + """Classify raw text. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str text: Text to classify. (required) + :param str best_classes_count: Count of the best classes to return. + :return: ClassificationResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.classify_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.classify_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def classify_with_http_info(self, request, **kwargs): # noqa: E501 + """Classify raw text. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param ClassifyRequest request object with parameters + :return: ClassificationResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method classify" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'text' is set + if request.text is None: + raise ValueError("Missing the required parameter `text` when calling `classify`") # noqa: E501 + + collection_formats = {} + path = '/words/classify' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('BestClassesCount') in path: + path = path.replace('{' + self.__downcase_first_letter('BestClassesCount' + '}'), request.best_classes_count if request.best_classes_count is not None else '') + else: + if request.best_classes_count is not None: + query_params.append((self.__downcase_first_letter('BestClassesCount'), request.best_classes_count)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.text is not None: + body_params = request.text + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ClassificationResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def classify_document(self, request, **kwargs): # noqa: E501 + """Classify document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str document_name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str best_classes_count: Count of the best classes to return. + :return: ClassificationResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.classify_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.classify_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def classify_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Classify document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param ClassifyDocumentRequest request object with parameters + :return: ClassificationResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method classify_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'document_name' is set + if request.document_name is None: + raise ValueError("Missing the required parameter `document_name` when calling `classify_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{documentName}/classify' + path_params = {} + if request.document_name is not None: + path_params[self.__downcase_first_letter('DocumentName')] = request.document_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('BestClassesCount') in path: + path = path.replace('{' + self.__downcase_first_letter('BestClassesCount' + '}'), request.best_classes_count if request.best_classes_count is not None else '') + else: + if request.best_classes_count is not None: + query_params.append((self.__downcase_first_letter('BestClassesCount'), request.best_classes_count)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ClassificationResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def create_or_update_document_property(self, request, **kwargs): # noqa: E501 + """Add new or update existing document property. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str property_name: The property name. (required) + :param DocumentProperty _property: The property with new value. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: DocumentPropertyResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.create_or_update_document_property_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.create_or_update_document_property_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def create_or_update_document_property_with_http_info(self, request, **kwargs): # noqa: E501 + """Add new or update existing document property. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param CreateOrUpdateDocumentPropertyRequest request object with parameters + :return: DocumentPropertyResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method create_or_update_document_property" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `create_or_update_document_property`") # noqa: E501 + # verify the required parameter 'property_name' is set + if request.property_name is None: + raise ValueError("Missing the required parameter `property_name` when calling `create_or_update_document_property`") # noqa: E501 + # verify the required parameter '_property' is set + if request._property is None: + raise ValueError("Missing the required parameter `_property` when calling `create_or_update_document_property`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/documentProperties/{propertyName}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.property_name is not None: + path_params[self.__downcase_first_letter('PropertyName')] = request.property_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request._property is not None: + body_params = request._property + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentPropertyResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_border(self, request, **kwargs): # noqa: E501 + """Resets border properties to default values. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str node_path: Path to node with border(node should be cell or row). (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: BorderResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_border_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_border_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_border_with_http_info(self, request, **kwargs): # noqa: E501 + """Resets border properties to default values. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteBorderRequest request object with parameters + :return: BorderResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_border" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_border`") # noqa: E501 + # verify the required parameter 'node_path' is set + if request.node_path is None: + raise ValueError("Missing the required parameter `node_path` when calling `delete_border`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_border`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/borders/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.node_path is not None: + path_params[self.__downcase_first_letter('NodePath')] = request.node_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BorderResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_borders(self, request, **kwargs): # noqa: E501 + """Resets borders properties to default values. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str node_path: Path to node with borders(node should be cell or row). (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: BordersResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_borders_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_borders_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_borders_with_http_info(self, request, **kwargs): # noqa: E501 + """Resets borders properties to default values. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteBordersRequest request object with parameters + :return: BordersResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_borders" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_borders`") # noqa: E501 + # verify the required parameter 'node_path' is set + if request.node_path is None: + raise ValueError("Missing the required parameter `node_path` when calling `delete_borders`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/borders' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.node_path is not None: + path_params[self.__downcase_first_letter('NodePath')] = request.node_path # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BordersResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_comment(self, request, **kwargs): # noqa: E501 + """Remove comment from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int comment_index: Comment index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_comment_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_comment_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_comment_with_http_info(self, request, **kwargs): # noqa: E501 + """Remove comment from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteCommentRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_comment" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_comment`") # noqa: E501 + # verify the required parameter 'comment_index' is set + if request.comment_index is None: + raise ValueError("Missing the required parameter `comment_index` when calling `delete_comment`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/comments/{commentIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.comment_index is not None: + path_params[self.__downcase_first_letter('CommentIndex')] = request.comment_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_document_macros(self, request, **kwargs): # noqa: E501 + """Remove macros from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_document_macros_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_document_macros_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_document_macros_with_http_info(self, request, **kwargs): # noqa: E501 + """Remove macros from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteDocumentMacrosRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_document_macros" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_document_macros`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/macros' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_document_property(self, request, **kwargs): # noqa: E501 + """Delete document property. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str property_name: The property name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_document_property_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_document_property_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_document_property_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete document property. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteDocumentPropertyRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_document_property" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_document_property`") # noqa: E501 + # verify the required parameter 'property_name' is set + if request.property_name is None: + raise ValueError("Missing the required parameter `property_name` when calling `delete_document_property`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/documentProperties/{propertyName}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.property_name is not None: + path_params[self.__downcase_first_letter('PropertyName')] = request.property_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_document_watermark(self, request, **kwargs): # noqa: E501 + """Delete watermark (for deleting last watermark from the document). # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_document_watermark_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_document_watermark_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_document_watermark_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete watermark (for deleting last watermark from the document). # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteDocumentWatermarkRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_document_watermark" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_document_watermark`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/watermark' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_drawing_object(self, request, **kwargs): # noqa: E501 + """Removes drawing object from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_drawing_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Removes drawing object from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteDrawingObjectRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_drawing_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_drawing_object`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_drawing_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_field(self, request, **kwargs): # noqa: E501 + """Delete field from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of fields. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete field from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteFieldRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_field`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/fields/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_fields(self, request, **kwargs): # noqa: E501 + """Remove fields from section paragraph. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of fields. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_fields_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_fields_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_fields_with_http_info(self, request, **kwargs): # noqa: E501 + """Remove fields from section paragraph. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteFieldsRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_fields" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_fields`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/fields' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_footnote(self, request, **kwargs): # noqa: E501 + """Removes footnote from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of footnotes. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_footnote_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_footnote_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_footnote_with_http_info(self, request, **kwargs): # noqa: E501 + """Removes footnote from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteFootnoteRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_footnote" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_footnote`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_footnote`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/footnotes/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_form_field(self, request, **kwargs): # noqa: E501 + """Removes form field from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node that contains collection of formfields. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_form_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_form_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_form_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Removes form field from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteFormFieldRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_form_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_form_field`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_form_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/formfields/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_header_footer(self, request, **kwargs): # noqa: E501 + """Delete header/footer from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str section_path: Path to parent section. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_header_footer_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_header_footer_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_header_footer_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete header/footer from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteHeaderFooterRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_header_footer" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_header_footer`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_header_footer`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{sectionPath}/headersfooters/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('SectionPath') in path: + path = path.replace('{' + self.__downcase_first_letter('SectionPath' + '}'), request.section_path if request.section_path is not None else '') + else: + if request.section_path is not None: + query_params.append((self.__downcase_first_letter('SectionPath'), request.section_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_headers_footers(self, request, **kwargs): # noqa: E501 + """Delete document headers and footers. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str section_path: Path to parent section. + :param str headers_footers_types: List of types of headers and footers. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_headers_footers_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_headers_footers_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_headers_footers_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete document headers and footers. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteHeadersFootersRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_headers_footers" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_headers_footers`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{sectionPath}/headersfooters' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('SectionPath') in path: + path = path.replace('{' + self.__downcase_first_letter('SectionPath' + '}'), request.section_path if request.section_path is not None else '') + else: + if request.section_path is not None: + query_params.append((self.__downcase_first_letter('SectionPath'), request.section_path)) # noqa: E501 + if self.__downcase_first_letter('HeadersFootersTypes') in path: + path = path.replace('{' + self.__downcase_first_letter('HeadersFootersTypes' + '}'), request.headers_footers_types if request.headers_footers_types is not None else '') + else: + if request.headers_footers_types is not None: + query_params.append((self.__downcase_first_letter('HeadersFootersTypes'), request.headers_footers_types)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_office_math_object(self, request, **kwargs): # noqa: E501 + """Removes OfficeMath object from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of OfficeMath objects. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_office_math_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_office_math_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_office_math_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Removes OfficeMath object from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteOfficeMathObjectRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_office_math_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_office_math_object`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_office_math_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/OfficeMathObjects/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_paragraph(self, request, **kwargs): # noqa: E501 + """Remove paragraph from section. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node which contains paragraphs. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_paragraph_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_paragraph_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_paragraph_with_http_info(self, request, **kwargs): # noqa: E501 + """Remove paragraph from section. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteParagraphRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_paragraph" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_paragraph`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_paragraph`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/paragraphs/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_run(self, request, **kwargs): # noqa: E501 + """Removes run from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_run_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_run_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_run_with_http_info(self, request, **kwargs): # noqa: E501 + """Removes run from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteRunRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_run" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_run`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `delete_run`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_run`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_table(self, request, **kwargs): # noqa: E501 + """Delete a table. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains tables. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_table_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_table_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_table_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete a table. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteTableRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_table" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_table`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_table`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_table_cell(self, request, **kwargs): # noqa: E501 + """Delete a table cell. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_row_path: Path to table row. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_table_cell_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_table_cell_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_table_cell_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete a table cell. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteTableCellRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_table_cell" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_table_cell`") # noqa: E501 + # verify the required parameter 'table_row_path' is set + if request.table_row_path is None: + raise ValueError("Missing the required parameter `table_row_path` when calling `delete_table_cell`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_table_cell`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tableRowPath}/cells/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_row_path is not None: + path_params[self.__downcase_first_letter('TableRowPath')] = request.table_row_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_table_row(self, request, **kwargs): # noqa: E501 + """Delete a table row. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_path: Path to table. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_table_row_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_table_row_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_table_row_with_http_info(self, request, **kwargs): # noqa: E501 + """Delete a table row. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteTableRowRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_table_row" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_table_row`") # noqa: E501 + # verify the required parameter 'table_path' is set + if request.table_path is None: + raise ValueError("Missing the required parameter `table_path` when calling `delete_table_row`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `delete_table_row`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tablePath}/rows/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_path is not None: + path_params[self.__downcase_first_letter('TablePath')] = request.table_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_unprotect_document(self, request, **kwargs): # noqa: E501 + """Unprotect document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param ProtectionRequest protection_request: with protection settings. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.delete_unprotect_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.delete_unprotect_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def delete_unprotect_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Unprotect document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param DeleteUnprotectDocumentRequest request object with parameters + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_unprotect_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `delete_unprotect_document`") # noqa: E501 + # verify the required parameter 'protection_request' is set + if request.protection_request is None: + raise ValueError("Missing the required parameter `protection_request` when calling `delete_unprotect_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/protection' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.protection_request is not None: + body_params = request.protection_request + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ProtectionDataResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_available_fonts(self, request, **kwargs): # noqa: E501 + """Gets the list of fonts, available for document processing # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str fonts_location: Folder in filestorage with custom fonts. + :return: AvailableFontsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_available_fonts_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_available_fonts_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_available_fonts_with_http_info(self, request, **kwargs): # noqa: E501 + """Gets the list of fonts, available for document processing # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetAvailableFontsRequest request object with parameters + :return: AvailableFontsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_available_fonts" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + path = '/words/fonts/available' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AvailableFontsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_border(self, request, **kwargs): # noqa: E501 + """Return a border. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str node_path: Path to node with border(node should be cell or row). (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: BorderResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_border_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_border_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_border_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a border. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetBorderRequest request object with parameters + :return: BorderResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_border" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_border`") # noqa: E501 + # verify the required parameter 'node_path' is set + if request.node_path is None: + raise ValueError("Missing the required parameter `node_path` when calling `get_border`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_border`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/borders/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.node_path is not None: + path_params[self.__downcase_first_letter('NodePath')] = request.node_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BorderResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_borders(self, request, **kwargs): # noqa: E501 + """Return a collection of borders. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str node_path: Path to node with borders(node should be cell or row). (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: BordersResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_borders_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_borders_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_borders_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a collection of borders. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetBordersRequest request object with parameters + :return: BordersResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_borders" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_borders`") # noqa: E501 + # verify the required parameter 'node_path' is set + if request.node_path is None: + raise ValueError("Missing the required parameter `node_path` when calling `get_borders`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/borders' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.node_path is not None: + path_params[self.__downcase_first_letter('NodePath')] = request.node_path # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BordersResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_comment(self, request, **kwargs): # noqa: E501 + """Get comment from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int comment_index: Comment index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: CommentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_comment_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_comment_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_comment_with_http_info(self, request, **kwargs): # noqa: E501 + """Get comment from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetCommentRequest request object with parameters + :return: CommentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_comment" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_comment`") # noqa: E501 + # verify the required parameter 'comment_index' is set + if request.comment_index is None: + raise ValueError("Missing the required parameter `comment_index` when calling `get_comment`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/comments/{commentIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.comment_index is not None: + path_params[self.__downcase_first_letter('CommentIndex')] = request.comment_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='CommentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_comments(self, request, **kwargs): # noqa: E501 + """Get comments from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: CommentsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_comments_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_comments_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_comments_with_http_info(self, request, **kwargs): # noqa: E501 + """Get comments from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetCommentsRequest request object with parameters + :return: CommentsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_comments" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_comments`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/comments' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='CommentsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document(self, request, **kwargs): # noqa: E501 + """Read document common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str document_name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'document_name' is set + if request.document_name is None: + raise ValueError("Missing the required parameter `document_name` when calling `get_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{documentName}' + path_params = {} + if request.document_name is not None: + path_params[self.__downcase_first_letter('DocumentName')] = request.document_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_bookmark_by_name(self, request, **kwargs): # noqa: E501 + """Read document bookmark data by its name. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str bookmark_name: The bookmark name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: BookmarkResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_bookmark_by_name_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_bookmark_by_name_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_bookmark_by_name_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document bookmark data by its name. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentBookmarkByNameRequest request object with parameters + :return: BookmarkResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_bookmark_by_name" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_bookmark_by_name`") # noqa: E501 + # verify the required parameter 'bookmark_name' is set + if request.bookmark_name is None: + raise ValueError("Missing the required parameter `bookmark_name` when calling `get_document_bookmark_by_name`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/bookmarks/{bookmarkName}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.bookmark_name is not None: + path_params[self.__downcase_first_letter('BookmarkName')] = request.bookmark_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BookmarkResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_bookmarks(self, request, **kwargs): # noqa: E501 + """Read document bookmarks common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: BookmarksResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_bookmarks_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_bookmarks_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_bookmarks_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document bookmarks common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentBookmarksRequest request object with parameters + :return: BookmarksResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_bookmarks" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_bookmarks`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/bookmarks' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BookmarksResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_drawing_object_by_index(self, request, **kwargs): # noqa: E501 + """Read document drawing object common info by its index or convert to format specified. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: DrawingObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_drawing_object_by_index_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_drawing_object_by_index_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_drawing_object_by_index_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document drawing object common info by its index or convert to format specified. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentDrawingObjectByIndexRequest request object with parameters + :return: DrawingObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_drawing_object_by_index" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_drawing_object_by_index`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_document_drawing_object_by_index`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DrawingObjectResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_drawing_object_image_data(self, request, **kwargs): # noqa: E501 + """Read drawing object image data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_drawing_object_image_data_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_drawing_object_image_data_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_drawing_object_image_data_with_http_info(self, request, **kwargs): # noqa: E501 + """Read drawing object image data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentDrawingObjectImageDataRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_drawing_object_image_data" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_drawing_object_image_data`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_document_drawing_object_image_data`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects/{index}/imageData' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_drawing_object_ole_data(self, request, **kwargs): # noqa: E501 + """Get drawing object OLE data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_drawing_object_ole_data_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_drawing_object_ole_data_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_drawing_object_ole_data_with_http_info(self, request, **kwargs): # noqa: E501 + """Get drawing object OLE data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentDrawingObjectOleDataRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_drawing_object_ole_data" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_drawing_object_ole_data`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_document_drawing_object_ole_data`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects/{index}/oleData' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_drawing_objects(self, request, **kwargs): # noqa: E501 + """Read document drawing objects common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: DrawingObjectsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_drawing_objects_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_drawing_objects_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_drawing_objects_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document drawing objects common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentDrawingObjectsRequest request object with parameters + :return: DrawingObjectsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_drawing_objects" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_drawing_objects`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DrawingObjectsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_field_names(self, request, **kwargs): # noqa: E501 + """Read document field names. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param bool use_non_merge_fields: If true, result includes \"mustache\" field names. + :return: FieldNamesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_field_names_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_field_names_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_field_names_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document field names. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentFieldNamesRequest request object with parameters + :return: FieldNamesResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_field_names" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_field_names`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/mailMergeFieldNames' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('UseNonMergeFields') in path: + path = path.replace('{' + self.__downcase_first_letter('UseNonMergeFields' + '}'), request.use_non_merge_fields if request.use_non_merge_fields is not None else '') + else: + if request.use_non_merge_fields is not None: + query_params.append((self.__downcase_first_letter('UseNonMergeFields'), request.use_non_merge_fields)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FieldNamesResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_hyperlink_by_index(self, request, **kwargs): # noqa: E501 + """Read document hyperlink by its index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int hyperlink_index: The hyperlink index. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: HyperlinkResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_hyperlink_by_index_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_hyperlink_by_index_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_hyperlink_by_index_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document hyperlink by its index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentHyperlinkByIndexRequest request object with parameters + :return: HyperlinkResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_hyperlink_by_index" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_hyperlink_by_index`") # noqa: E501 + # verify the required parameter 'hyperlink_index' is set + if request.hyperlink_index is None: + raise ValueError("Missing the required parameter `hyperlink_index` when calling `get_document_hyperlink_by_index`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/hyperlinks/{hyperlinkIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.hyperlink_index is not None: + path_params[self.__downcase_first_letter('HyperlinkIndex')] = request.hyperlink_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='HyperlinkResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_hyperlinks(self, request, **kwargs): # noqa: E501 + """Read document hyperlinks common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: HyperlinksResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_hyperlinks_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_hyperlinks_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_hyperlinks_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document hyperlinks common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentHyperlinksRequest request object with parameters + :return: HyperlinksResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_hyperlinks" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_hyperlinks`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/hyperlinks' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='HyperlinksResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_paragraph(self, request, **kwargs): # noqa: E501 + """This resource represents one of the paragraphs contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node which contains paragraphs. + :return: ParagraphResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_paragraph_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_paragraph_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_paragraph_with_http_info(self, request, **kwargs): # noqa: E501 + """This resource represents one of the paragraphs contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentParagraphRequest request object with parameters + :return: ParagraphResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_paragraph" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_paragraph`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_document_paragraph`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/paragraphs/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ParagraphResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_paragraph_run(self, request, **kwargs): # noqa: E501 + """This resource represents run of text contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: RunResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_paragraph_run_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_paragraph_run_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_paragraph_run_with_http_info(self, request, **kwargs): # noqa: E501 + """This resource represents run of text contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentParagraphRunRequest request object with parameters + :return: RunResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_paragraph_run" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_paragraph_run`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `get_document_paragraph_run`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_document_paragraph_run`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='RunResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_paragraph_run_font(self, request, **kwargs): # noqa: E501 + """This resource represents font of run. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: FontResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_paragraph_run_font_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_paragraph_run_font_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_paragraph_run_font_with_http_info(self, request, **kwargs): # noqa: E501 + """This resource represents font of run. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentParagraphRunFontRequest request object with parameters + :return: FontResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_paragraph_run_font" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_paragraph_run_font`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `get_document_paragraph_run_font`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_document_paragraph_run_font`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs/{index}/font' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FontResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_paragraph_runs(self, request, **kwargs): # noqa: E501 + """This resource represents collection of runs in the paragraph. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: RunsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_paragraph_runs_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_paragraph_runs_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_paragraph_runs_with_http_info(self, request, **kwargs): # noqa: E501 + """This resource represents collection of runs in the paragraph. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentParagraphRunsRequest request object with parameters + :return: RunsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_paragraph_runs" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_paragraph_runs`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `get_document_paragraph_runs`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='RunsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_paragraphs(self, request, **kwargs): # noqa: E501 + """Return a list of paragraphs that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node which contains paragraphs. + :return: ParagraphLinkCollectionResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_paragraphs_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_paragraphs_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_paragraphs_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a list of paragraphs that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentParagraphsRequest request object with parameters + :return: ParagraphLinkCollectionResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_paragraphs" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_paragraphs`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/paragraphs' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ParagraphLinkCollectionResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_properties(self, request, **kwargs): # noqa: E501 + """Read document properties info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document's name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: DocumentPropertiesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_properties_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_properties_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_properties_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document properties info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentPropertiesRequest request object with parameters + :return: DocumentPropertiesResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_properties" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_properties`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/documentProperties' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentPropertiesResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_property(self, request, **kwargs): # noqa: E501 + """Read document property info by the property name. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str property_name: The property name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: DocumentPropertyResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_property_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_property_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_property_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document property info by the property name. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentPropertyRequest request object with parameters + :return: DocumentPropertyResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_property" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_property`") # noqa: E501 + # verify the required parameter 'property_name' is set + if request.property_name is None: + raise ValueError("Missing the required parameter `property_name` when calling `get_document_property`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/documentProperties/{propertyName}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.property_name is not None: + path_params[self.__downcase_first_letter('PropertyName')] = request.property_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentPropertyResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_protection(self, request, **kwargs): # noqa: E501 + """Read document protection common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_protection_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_protection_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_protection_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document protection common info. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentProtectionRequest request object with parameters + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_protection" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_protection`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/protection' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ProtectionDataResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_statistics(self, request, **kwargs): # noqa: E501 + """Read document statistics. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param bool include_comments: Support including/excluding comments from the WordCount. Default value is \"true\". + :param bool include_footnotes: Support including/excluding footnotes from the WordCount. Default value is \"false\". + :param bool include_text_in_shapes: Support including/excluding shape's text from the WordCount. Default value is \"false\" + :return: StatDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_statistics_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_statistics_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_statistics_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document statistics. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentStatisticsRequest request object with parameters + :return: StatDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_statistics" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_statistics`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/statistics' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('IncludeComments') in path: + path = path.replace('{' + self.__downcase_first_letter('IncludeComments' + '}'), request.include_comments if request.include_comments is not None else '') + else: + if request.include_comments is not None: + query_params.append((self.__downcase_first_letter('IncludeComments'), request.include_comments)) # noqa: E501 + if self.__downcase_first_letter('IncludeFootnotes') in path: + path = path.replace('{' + self.__downcase_first_letter('IncludeFootnotes' + '}'), request.include_footnotes if request.include_footnotes is not None else '') + else: + if request.include_footnotes is not None: + query_params.append((self.__downcase_first_letter('IncludeFootnotes'), request.include_footnotes)) # noqa: E501 + if self.__downcase_first_letter('IncludeTextInShapes') in path: + path = path.replace('{' + self.__downcase_first_letter('IncludeTextInShapes' + '}'), request.include_text_in_shapes if request.include_text_in_shapes is not None else '') + else: + if request.include_text_in_shapes is not None: + query_params.append((self.__downcase_first_letter('IncludeTextInShapes'), request.include_text_in_shapes)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='StatDataResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_text_items(self, request, **kwargs): # noqa: E501 + """Read document text items. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: TextItemsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_text_items_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_text_items_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_text_items_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document text items. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentTextItemsRequest request object with parameters + :return: TextItemsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_text_items" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_text_items`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/textItems' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TextItemsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_document_with_format(self, request, **kwargs): # noqa: E501 + """Export the document into the specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str format: The destination format. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str out_path: Path to save result + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_document_with_format_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_document_with_format_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_document_with_format_with_http_info(self, request, **kwargs): # noqa: E501 + """Export the document into the specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetDocumentWithFormatRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_document_with_format" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_document_with_format`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `get_document_with_format`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('OutPath') in path: + path = path.replace('{' + self.__downcase_first_letter('OutPath' + '}'), request.out_path if request.out_path is not None else '') + else: + if request.out_path is not None: + query_params.append((self.__downcase_first_letter('OutPath'), request.out_path)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_field(self, request, **kwargs): # noqa: E501 + """Get field from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of fields. + :return: FieldResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Get field from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetFieldRequest request object with parameters + :return: FieldResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_field`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/fields/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FieldResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_fields(self, request, **kwargs): # noqa: E501 + """Get fields from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of fields. + :return: FieldsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_fields_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_fields_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_fields_with_http_info(self, request, **kwargs): # noqa: E501 + """Get fields from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetFieldsRequest request object with parameters + :return: FieldsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_fields" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_fields`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/fields' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FieldsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_footnote(self, request, **kwargs): # noqa: E501 + """Read footnote by index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of footnotes. + :return: FootnoteResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_footnote_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_footnote_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_footnote_with_http_info(self, request, **kwargs): # noqa: E501 + """Read footnote by index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetFootnoteRequest request object with parameters + :return: FootnoteResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_footnote" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_footnote`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_footnote`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/footnotes/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FootnoteResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_footnotes(self, request, **kwargs): # noqa: E501 + """Get footnotes from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of footnotes. + :return: FootnotesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_footnotes_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_footnotes_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_footnotes_with_http_info(self, request, **kwargs): # noqa: E501 + """Get footnotes from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetFootnotesRequest request object with parameters + :return: FootnotesResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_footnotes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_footnotes`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/footnotes' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FootnotesResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_form_field(self, request, **kwargs): # noqa: E501 + """Returns representation of an one of the form field. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node that contains collection of formfields. + :return: FormFieldResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_form_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_form_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_form_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Returns representation of an one of the form field. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetFormFieldRequest request object with parameters + :return: FormFieldResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_form_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_form_field`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_form_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/formfields/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FormFieldResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_form_fields(self, request, **kwargs): # noqa: E501 + """Get form fields from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node containing collection of form fields. + :return: FormFieldsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_form_fields_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_form_fields_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_form_fields_with_http_info(self, request, **kwargs): # noqa: E501 + """Get form fields from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetFormFieldsRequest request object with parameters + :return: FormFieldsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_form_fields" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_form_fields`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/formfields' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FormFieldsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_header_footer(self, request, **kwargs): # noqa: E501 + """Return a header/footer that is contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int header_footer_index: Header/footer index. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str filter_by_type: List of types of headers and footers. + :return: HeaderFooterResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_header_footer_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_header_footer_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_header_footer_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a header/footer that is contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetHeaderFooterRequest request object with parameters + :return: HeaderFooterResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_header_footer" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_header_footer`") # noqa: E501 + # verify the required parameter 'header_footer_index' is set + if request.header_footer_index is None: + raise ValueError("Missing the required parameter `header_footer_index` when calling `get_header_footer`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/headersfooters/{headerFooterIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.header_footer_index is not None: + path_params[self.__downcase_first_letter('HeaderFooterIndex')] = request.header_footer_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('FilterByType') in path: + path = path.replace('{' + self.__downcase_first_letter('FilterByType' + '}'), request.filter_by_type if request.filter_by_type is not None else '') + else: + if request.filter_by_type is not None: + query_params.append((self.__downcase_first_letter('FilterByType'), request.filter_by_type)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='HeaderFooterResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_header_footer_of_section(self, request, **kwargs): # noqa: E501 + """Return a header/footer that is contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int header_footer_index: Header/footer index. (required) + :param int section_index: Section index. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str filter_by_type: List of types of headers and footers. + :return: HeaderFooterResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_header_footer_of_section_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_header_footer_of_section_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_header_footer_of_section_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a header/footer that is contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetHeaderFooterOfSectionRequest request object with parameters + :return: HeaderFooterResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_header_footer_of_section" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_header_footer_of_section`") # noqa: E501 + # verify the required parameter 'header_footer_index' is set + if request.header_footer_index is None: + raise ValueError("Missing the required parameter `header_footer_index` when calling `get_header_footer_of_section`") # noqa: E501 + # verify the required parameter 'section_index' is set + if request.section_index is None: + raise ValueError("Missing the required parameter `section_index` when calling `get_header_footer_of_section`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/sections/{sectionIndex}/headersfooters/{headerFooterIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.header_footer_index is not None: + path_params[self.__downcase_first_letter('HeaderFooterIndex')] = request.header_footer_index # noqa: E501 + if request.section_index is not None: + path_params[self.__downcase_first_letter('SectionIndex')] = request.section_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('FilterByType') in path: + path = path.replace('{' + self.__downcase_first_letter('FilterByType' + '}'), request.filter_by_type if request.filter_by_type is not None else '') + else: + if request.filter_by_type is not None: + query_params.append((self.__downcase_first_letter('FilterByType'), request.filter_by_type)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='HeaderFooterResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_header_footers(self, request, **kwargs): # noqa: E501 + """Return a list of header/footers that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str section_path: Path to parent section. + :param str filter_by_type: List of types of headers and footers. + :return: HeaderFootersResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_header_footers_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_header_footers_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_header_footers_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a list of header/footers that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetHeaderFootersRequest request object with parameters + :return: HeaderFootersResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_header_footers" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_header_footers`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{sectionPath}/headersfooters' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('SectionPath') in path: + path = path.replace('{' + self.__downcase_first_letter('SectionPath' + '}'), request.section_path if request.section_path is not None else '') + else: + if request.section_path is not None: + query_params.append((self.__downcase_first_letter('SectionPath'), request.section_path)) # noqa: E501 + if self.__downcase_first_letter('FilterByType') in path: + path = path.replace('{' + self.__downcase_first_letter('FilterByType' + '}'), request.filter_by_type if request.filter_by_type is not None else '') + else: + if request.filter_by_type is not None: + query_params.append((self.__downcase_first_letter('FilterByType'), request.filter_by_type)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='HeaderFootersResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_office_math_object(self, request, **kwargs): # noqa: E501 + """Read OfficeMath object by index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of OfficeMath objects. + :return: OfficeMathObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_office_math_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_office_math_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_office_math_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Read OfficeMath object by index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetOfficeMathObjectRequest request object with parameters + :return: OfficeMathObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_office_math_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_office_math_object`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_office_math_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/OfficeMathObjects/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='OfficeMathObjectResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_office_math_objects(self, request, **kwargs): # noqa: E501 + """Get OfficeMath objects from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains collection of OfficeMath objects. + :return: OfficeMathObjectsResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_office_math_objects_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_office_math_objects_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_office_math_objects_with_http_info(self, request, **kwargs): # noqa: E501 + """Get OfficeMath objects from document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetOfficeMathObjectsRequest request object with parameters + :return: OfficeMathObjectsResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_office_math_objects" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_office_math_objects`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/OfficeMathObjects' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='OfficeMathObjectsResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_section(self, request, **kwargs): # noqa: E501 + """Get document section by index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int section_index: Section index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: SectionResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_section_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_section_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_section_with_http_info(self, request, **kwargs): # noqa: E501 + """Get document section by index. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetSectionRequest request object with parameters + :return: SectionResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_section" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_section`") # noqa: E501 + # verify the required parameter 'section_index' is set + if request.section_index is None: + raise ValueError("Missing the required parameter `section_index` when calling `get_section`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/sections/{sectionIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.section_index is not None: + path_params[self.__downcase_first_letter('SectionIndex')] = request.section_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SectionResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_section_page_setup(self, request, **kwargs): # noqa: E501 + """Get page setup of section. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int section_index: Section index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: SectionPageSetupResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_section_page_setup_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_section_page_setup_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_section_page_setup_with_http_info(self, request, **kwargs): # noqa: E501 + """Get page setup of section. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetSectionPageSetupRequest request object with parameters + :return: SectionPageSetupResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_section_page_setup" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_section_page_setup`") # noqa: E501 + # verify the required parameter 'section_index' is set + if request.section_index is None: + raise ValueError("Missing the required parameter `section_index` when calling `get_section_page_setup`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/sections/{sectionIndex}/pageSetup' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.section_index is not None: + path_params[self.__downcase_first_letter('SectionIndex')] = request.section_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SectionPageSetupResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_sections(self, request, **kwargs): # noqa: E501 + """Return a list of sections that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: SectionLinkCollectionResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_sections_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_sections_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_sections_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a list of sections that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetSectionsRequest request object with parameters + :return: SectionLinkCollectionResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_sections" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_sections`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/sections' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SectionLinkCollectionResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_table(self, request, **kwargs): # noqa: E501 + """Return a table. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains tables. + :return: TableResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_table_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_table_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_table_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a table. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTableRequest request object with parameters + :return: TableResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_table" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_table`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_table`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_table_cell(self, request, **kwargs): # noqa: E501 + """Return a table cell. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_row_path: Path to table row. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: TableCellResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_table_cell_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_table_cell_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_table_cell_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a table cell. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTableCellRequest request object with parameters + :return: TableCellResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_table_cell" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_table_cell`") # noqa: E501 + # verify the required parameter 'table_row_path' is set + if request.table_row_path is None: + raise ValueError("Missing the required parameter `table_row_path` when calling `get_table_cell`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_table_cell`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tableRowPath}/cells/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_row_path is not None: + path_params[self.__downcase_first_letter('TableRowPath')] = request.table_row_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableCellResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_table_cell_format(self, request, **kwargs): # noqa: E501 + """Return a table cell format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_row_path: Path to table row. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: TableCellFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_table_cell_format_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_table_cell_format_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_table_cell_format_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a table cell format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTableCellFormatRequest request object with parameters + :return: TableCellFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_table_cell_format" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_table_cell_format`") # noqa: E501 + # verify the required parameter 'table_row_path' is set + if request.table_row_path is None: + raise ValueError("Missing the required parameter `table_row_path` when calling `get_table_cell_format`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_table_cell_format`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tableRowPath}/cells/{index}/cellformat' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_row_path is not None: + path_params[self.__downcase_first_letter('TableRowPath')] = request.table_row_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableCellFormatResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_table_properties(self, request, **kwargs): # noqa: E501 + """Return a table properties. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains tables. + :return: TablePropertiesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_table_properties_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_table_properties_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_table_properties_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a table properties. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTablePropertiesRequest request object with parameters + :return: TablePropertiesResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_table_properties" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_table_properties`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_table_properties`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables/{index}/properties' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TablePropertiesResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_table_row(self, request, **kwargs): # noqa: E501 + """Return a table row. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_path: Path to table. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: TableRowResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_table_row_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_table_row_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_table_row_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a table row. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTableRowRequest request object with parameters + :return: TableRowResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_table_row" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_table_row`") # noqa: E501 + # verify the required parameter 'table_path' is set + if request.table_path is None: + raise ValueError("Missing the required parameter `table_path` when calling `get_table_row`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_table_row`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tablePath}/rows/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_path is not None: + path_params[self.__downcase_first_letter('TablePath')] = request.table_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableRowResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_table_row_format(self, request, **kwargs): # noqa: E501 + """Return a table row format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_path: Path to table. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: TableRowFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_table_row_format_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_table_row_format_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_table_row_format_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a table row format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTableRowFormatRequest request object with parameters + :return: TableRowFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_table_row_format" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_table_row_format`") # noqa: E501 + # verify the required parameter 'table_path' is set + if request.table_path is None: + raise ValueError("Missing the required parameter `table_path` when calling `get_table_row_format`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `get_table_row_format`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tablePath}/rows/{index}/rowformat' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_path is not None: + path_params[self.__downcase_first_letter('TablePath')] = request.table_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableRowFormatResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_tables(self, request, **kwargs): # noqa: E501 + """Return a list of tables that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains tables. + :return: TableLinkCollectionResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.get_tables_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.get_tables_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def get_tables_with_http_info(self, request, **kwargs): # noqa: E501 + """Return a list of tables that are contained in the document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param GetTablesRequest request object with parameters + :return: TableLinkCollectionResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_tables" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `get_tables`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableLinkCollectionResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def insert_table(self, request, **kwargs): # noqa: E501 + """Adds table to document, returns added table's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param TableInsert table: Table parameters/ + :param str node_path: Path to node, which contains tables. + :return: TableResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.insert_table_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.insert_table_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def insert_table_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds table to document, returns added table's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param InsertTableRequest request object with parameters + :return: TableResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method insert_table" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `insert_table`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.table is not None: + body_params = request.table + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def insert_table_cell(self, request, **kwargs): # noqa: E501 + """Adds table cell to table, returns added cell's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_row_path: Path to table row. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param TableCellInsert cell: Table cell parameters/ + :return: TableCellResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.insert_table_cell_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.insert_table_cell_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def insert_table_cell_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds table cell to table, returns added cell's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param InsertTableCellRequest request object with parameters + :return: TableCellResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method insert_table_cell" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `insert_table_cell`") # noqa: E501 + # verify the required parameter 'table_row_path' is set + if request.table_row_path is None: + raise ValueError("Missing the required parameter `table_row_path` when calling `insert_table_cell`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tableRowPath}/cells' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_row_path is not None: + path_params[self.__downcase_first_letter('TableRowPath')] = request.table_row_path # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.cell is not None: + body_params = request.cell + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableCellResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def insert_table_row(self, request, **kwargs): # noqa: E501 + """Adds table row to table, returns added row's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_path: Path to table. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param TableRowInsert row: Table row parameters/ + :return: TableRowResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.insert_table_row_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.insert_table_row_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def insert_table_row_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds table row to table, returns added row's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param InsertTableRowRequest request object with parameters + :return: TableRowResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method insert_table_row" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `insert_table_row`") # noqa: E501 + # verify the required parameter 'table_path' is set + if request.table_path is None: + raise ValueError("Missing the required parameter `table_path` when calling `insert_table_row`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tablePath}/rows' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_path is not None: + path_params[self.__downcase_first_letter('TablePath')] = request.table_path # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.row is not None: + body_params = request.row + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableRowResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_append_document(self, request, **kwargs): # noqa: E501 + """Append documents to original document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: Original document name. (required) + :param DocumentEntryList document_list: with a list of documents to append. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_append_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_append_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_append_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Append documents to original document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostAppendDocumentRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_append_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_append_document`") # noqa: E501 + # verify the required parameter 'document_list' is set + if request.document_list is None: + raise ValueError("Missing the required parameter `document_list` when calling `post_append_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/appendDocument' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.document_list is not None: + body_params = request.document_list + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_change_document_protection(self, request, **kwargs): # noqa: E501 + """Change document protection. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param ProtectionRequest protection_request: with protection settings. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_change_document_protection_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_change_document_protection_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_change_document_protection_with_http_info(self, request, **kwargs): # noqa: E501 + """Change document protection. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostChangeDocumentProtectionRequest request object with parameters + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_change_document_protection" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_change_document_protection`") # noqa: E501 + # verify the required parameter 'protection_request' is set + if request.protection_request is None: + raise ValueError("Missing the required parameter `protection_request` when calling `post_change_document_protection`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/protection' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.protection_request is not None: + body_params = request.protection_request + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ProtectionDataResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_comment(self, request, **kwargs): # noqa: E501 + """Updates the comment, returns updated comment's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int comment_index: Comment index (required) + :param Comment comment: Comment data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: CommentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_comment_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_comment_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_comment_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates the comment, returns updated comment's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostCommentRequest request object with parameters + :return: CommentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_comment" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_comment`") # noqa: E501 + # verify the required parameter 'comment_index' is set + if request.comment_index is None: + raise ValueError("Missing the required parameter `comment_index` when calling `post_comment`") # noqa: E501 + # verify the required parameter 'comment' is set + if request.comment is None: + raise ValueError("Missing the required parameter `comment` when calling `post_comment`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/comments/{commentIndex}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.comment_index is not None: + path_params[self.__downcase_first_letter('CommentIndex')] = request.comment_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.comment is not None: + body_params = request.comment + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='CommentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_compare_document(self, request, **kwargs): # noqa: E501 + """Compare document with original document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: Original document name. (required) + :param CompareData compare_data: with a document to compare. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_compare_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_compare_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_compare_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Compare document with original document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostCompareDocumentRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_compare_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_compare_document`") # noqa: E501 + # verify the required parameter 'compare_data' is set + if request.compare_data is None: + raise ValueError("Missing the required parameter `compare_data` when calling `post_compare_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/compareDocument' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.compare_data is not None: + body_params = request.compare_data + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_document_execute_mail_merge(self, request, **kwargs): # noqa: E501 + """Execute document mail merge operation. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str data: Mail merge data + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param bool with_regions: With regions flag. + :param str mail_merge_data_file: Mail merge data. + :param str cleanup: Clean up options. + :param bool use_whole_paragraph_as_region: Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_document_execute_mail_merge_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_document_execute_mail_merge_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_document_execute_mail_merge_with_http_info(self, request, **kwargs): # noqa: E501 + """Execute document mail merge operation. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostDocumentExecuteMailMergeRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_document_execute_mail_merge" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_document_execute_mail_merge`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/executeMailMerge' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('WithRegions') in path: + path = path.replace('{' + self.__downcase_first_letter('WithRegions' + '}'), request.with_regions if request.with_regions is not None else '') + else: + if request.with_regions is not None: + query_params.append((self.__downcase_first_letter('WithRegions'), request.with_regions)) # noqa: E501 + if self.__downcase_first_letter('MailMergeDataFile') in path: + path = path.replace('{' + self.__downcase_first_letter('MailMergeDataFile' + '}'), request.mail_merge_data_file if request.mail_merge_data_file is not None else '') + else: + if request.mail_merge_data_file is not None: + query_params.append((self.__downcase_first_letter('MailMergeDataFile'), request.mail_merge_data_file)) # noqa: E501 + if self.__downcase_first_letter('Cleanup') in path: + path = path.replace('{' + self.__downcase_first_letter('Cleanup' + '}'), request.cleanup if request.cleanup is not None else '') + else: + if request.cleanup is not None: + query_params.append((self.__downcase_first_letter('Cleanup'), request.cleanup)) # noqa: E501 + if self.__downcase_first_letter('UseWholeParagraphAsRegion') in path: + path = path.replace('{' + self.__downcase_first_letter('UseWholeParagraphAsRegion' + '}'), request.use_whole_paragraph_as_region if request.use_whole_paragraph_as_region is not None else '') + else: + if request.use_whole_paragraph_as_region is not None: + query_params.append((self.__downcase_first_letter('UseWholeParagraphAsRegion'), request.use_whole_paragraph_as_region)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.data is not None: + form_params.append((self.__downcase_first_letter('Data'), request.data)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_document_paragraph_run_font(self, request, **kwargs): # noqa: E501 + """Updates font properties, returns updated font data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Font font_dto: Font dto object (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: FontResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_document_paragraph_run_font_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_document_paragraph_run_font_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_document_paragraph_run_font_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates font properties, returns updated font data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostDocumentParagraphRunFontRequest request object with parameters + :return: FontResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_document_paragraph_run_font" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_document_paragraph_run_font`") # noqa: E501 + # verify the required parameter 'font_dto' is set + if request.font_dto is None: + raise ValueError("Missing the required parameter `font_dto` when calling `post_document_paragraph_run_font`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `post_document_paragraph_run_font`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `post_document_paragraph_run_font`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs/{index}/font' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.font_dto is not None: + body_params = request.font_dto + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FontResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_document_save_as(self, request, **kwargs): # noqa: E501 + """Convert document to destination format with detailed settings and save result to storage. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param SaveOptionsData save_options_data: Save options. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: SaveResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_document_save_as_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_document_save_as_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_document_save_as_with_http_info(self, request, **kwargs): # noqa: E501 + """Convert document to destination format with detailed settings and save result to storage. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostDocumentSaveAsRequest request object with parameters + :return: SaveResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_document_save_as" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_document_save_as`") # noqa: E501 + # verify the required parameter 'save_options_data' is set + if request.save_options_data is None: + raise ValueError("Missing the required parameter `save_options_data` when calling `post_document_save_as`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/saveAs' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.save_options_data is not None: + body_params = request.save_options_data + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SaveResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_drawing_object(self, request, **kwargs): # noqa: E501 + """Updates drawing object, returns updated drawing object's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str drawing_object: Drawing object parameters (required) + :param file image_file: File with image (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: DrawingObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_drawing_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates drawing object, returns updated drawing object's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostDrawingObjectRequest request object with parameters + :return: DrawingObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_drawing_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_drawing_object`") # noqa: E501 + # verify the required parameter 'drawing_object' is set + if request.drawing_object is None: + raise ValueError("Missing the required parameter `drawing_object` when calling `post_drawing_object`") # noqa: E501 + # verify the required parameter 'image_file' is set + if request.image_file is None: + raise ValueError("Missing the required parameter `image_file` when calling `post_drawing_object`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `post_drawing_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.drawing_object is not None: + form_params.append((self.__downcase_first_letter('DrawingObject'), request.drawing_object)) # noqa: E501 + if request.image_file is not None: + local_var_files.append((self.__downcase_first_letter('ImageFile'), request.image_file)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DrawingObjectResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_execute_template(self, request, **kwargs): # noqa: E501 + """Populate document template with data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The template document name. (required) + :param str data: Mail merge data (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str cleanup: Clean up options. + :param bool use_whole_paragraph_as_region: Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. + :param bool with_regions: Merge with regions or not. True by default + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_execute_template_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_execute_template_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_execute_template_with_http_info(self, request, **kwargs): # noqa: E501 + """Populate document template with data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostExecuteTemplateRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_execute_template" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_execute_template`") # noqa: E501 + # verify the required parameter 'data' is set + if request.data is None: + raise ValueError("Missing the required parameter `data` when calling `post_execute_template`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/executeTemplate' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('Cleanup') in path: + path = path.replace('{' + self.__downcase_first_letter('Cleanup' + '}'), request.cleanup if request.cleanup is not None else '') + else: + if request.cleanup is not None: + query_params.append((self.__downcase_first_letter('Cleanup'), request.cleanup)) # noqa: E501 + if self.__downcase_first_letter('UseWholeParagraphAsRegion') in path: + path = path.replace('{' + self.__downcase_first_letter('UseWholeParagraphAsRegion' + '}'), request.use_whole_paragraph_as_region if request.use_whole_paragraph_as_region is not None else '') + else: + if request.use_whole_paragraph_as_region is not None: + query_params.append((self.__downcase_first_letter('UseWholeParagraphAsRegion'), request.use_whole_paragraph_as_region)) # noqa: E501 + if self.__downcase_first_letter('WithRegions') in path: + path = path.replace('{' + self.__downcase_first_letter('WithRegions' + '}'), request.with_regions if request.with_regions is not None else '') + else: + if request.with_regions is not None: + query_params.append((self.__downcase_first_letter('WithRegions'), request.with_regions)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.data is not None: + form_params.append((self.__downcase_first_letter('Data'), request.data)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_field(self, request, **kwargs): # noqa: E501 + """Updates field's properties, returns updated field's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Field field: Field data. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of fields. + :return: FieldResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates field's properties, returns updated field's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostFieldRequest request object with parameters + :return: FieldResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_field`") # noqa: E501 + # verify the required parameter 'field' is set + if request.field is None: + raise ValueError("Missing the required parameter `field` when calling `post_field`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `post_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/fields/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.field is not None: + body_params = request.field + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FieldResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_footnote(self, request, **kwargs): # noqa: E501 + """Updates footnote's properties, returns updated run's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Footnote footnote_dto: Footnote data. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of footnotes. + :return: FootnoteResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_footnote_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_footnote_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_footnote_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates footnote's properties, returns updated run's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostFootnoteRequest request object with parameters + :return: FootnoteResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_footnote" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_footnote`") # noqa: E501 + # verify the required parameter 'footnote_dto' is set + if request.footnote_dto is None: + raise ValueError("Missing the required parameter `footnote_dto` when calling `post_footnote`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `post_footnote`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/footnotes/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.footnote_dto is not None: + body_params = request.footnote_dto + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FootnoteResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_form_field(self, request, **kwargs): # noqa: E501 + """Updates properties of form field, returns updated form field. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param FormField form_field: From field data. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node that contains collection of formfields. + :return: FormFieldResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_form_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_form_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_form_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates properties of form field, returns updated form field. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostFormFieldRequest request object with parameters + :return: FormFieldResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_form_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_form_field`") # noqa: E501 + # verify the required parameter 'form_field' is set + if request.form_field is None: + raise ValueError("Missing the required parameter `form_field` when calling `post_form_field`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `post_form_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/formfields/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.form_field is not None: + body_params = request.form_field + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FormFieldResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_insert_document_watermark_image(self, request, **kwargs): # noqa: E501 + """Insert document watermark image. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param file image_file: File with image + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param float rotation_angle: The watermark rotation angle. + :param str image: The image file server full name. If the name is empty the image is expected in request content. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_insert_document_watermark_image_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_insert_document_watermark_image_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_insert_document_watermark_image_with_http_info(self, request, **kwargs): # noqa: E501 + """Insert document watermark image. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostInsertDocumentWatermarkImageRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_insert_document_watermark_image" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_insert_document_watermark_image`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/watermark/insertImage' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('RotationAngle') in path: + path = path.replace('{' + self.__downcase_first_letter('RotationAngle' + '}'), request.rotation_angle if request.rotation_angle is not None else '') + else: + if request.rotation_angle is not None: + query_params.append((self.__downcase_first_letter('RotationAngle'), request.rotation_angle)) # noqa: E501 + if self.__downcase_first_letter('Image') in path: + path = path.replace('{' + self.__downcase_first_letter('Image' + '}'), request.image if request.image is not None else '') + else: + if request.image is not None: + query_params.append((self.__downcase_first_letter('Image'), request.image)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.image_file is not None: + local_var_files.append((self.__downcase_first_letter('ImageFile'), request.image_file)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_insert_document_watermark_text(self, request, **kwargs): # noqa: E501 + """Insert document watermark text. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param WatermarkText watermark_text: with the watermark data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_insert_document_watermark_text_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_insert_document_watermark_text_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_insert_document_watermark_text_with_http_info(self, request, **kwargs): # noqa: E501 + """Insert document watermark text. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostInsertDocumentWatermarkTextRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_insert_document_watermark_text" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_insert_document_watermark_text`") # noqa: E501 + # verify the required parameter 'watermark_text' is set + if request.watermark_text is None: + raise ValueError("Missing the required parameter `watermark_text` when calling `post_insert_document_watermark_text`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/watermark/insertText' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.watermark_text is not None: + body_params = request.watermark_text + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_insert_page_numbers(self, request, **kwargs): # noqa: E501 + """Insert document page numbers. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: A document name. (required) + :param PageNumber page_number: with the page numbers settings. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_insert_page_numbers_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_insert_page_numbers_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_insert_page_numbers_with_http_info(self, request, **kwargs): # noqa: E501 + """Insert document page numbers. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostInsertPageNumbersRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_insert_page_numbers" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_insert_page_numbers`") # noqa: E501 + # verify the required parameter 'page_number' is set + if request.page_number is None: + raise ValueError("Missing the required parameter `page_number` when calling `post_insert_page_numbers`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/insertPageNumbers' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.page_number is not None: + body_params = request.page_number + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_load_web_document(self, request, **kwargs): # noqa: E501 + """Loads new document from web into the file with any supported format of data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param LoadWebDocumentData data: Parameters of loading. (required) + :param str storage: File storage, which have to be used. + :return: SaveResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_load_web_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_load_web_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_load_web_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Loads new document from web into the file with any supported format of data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostLoadWebDocumentRequest request object with parameters + :return: SaveResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_load_web_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'data' is set + if request.data is None: + raise ValueError("Missing the required parameter `data` when calling `post_load_web_document`") # noqa: E501 + + collection_formats = {} + path = '/words/loadWebDocument' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.data is not None: + body_params = request.data + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SaveResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_replace_text(self, request, **kwargs): # noqa: E501 + """Replace document text. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param ReplaceTextRequest replace_text: with the replace operation settings. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: ReplaceTextResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_replace_text_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_replace_text_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_replace_text_with_http_info(self, request, **kwargs): # noqa: E501 + """Replace document text. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostReplaceTextRequest request object with parameters + :return: ReplaceTextResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_replace_text" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_replace_text`") # noqa: E501 + # verify the required parameter 'replace_text' is set + if request.replace_text is None: + raise ValueError("Missing the required parameter `replace_text` when calling `post_replace_text`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/replaceText' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.replace_text is not None: + body_params = request.replace_text + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReplaceTextResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_run(self, request, **kwargs): # noqa: E501 + """Updates run's properties, returns updated run's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Run run: Run data. (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: RunResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_run_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_run_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_run_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates run's properties, returns updated run's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostRunRequest request object with parameters + :return: RunResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_run" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_run`") # noqa: E501 + # verify the required parameter 'run' is set + if request.run is None: + raise ValueError("Missing the required parameter `run` when calling `post_run`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `post_run`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `post_run`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.run is not None: + body_params = request.run + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='RunResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_split_document(self, request, **kwargs): # noqa: E501 + """Split document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: Original document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str format: Format to split. + :param int _from: Start page. + :param int to: End page. + :param bool zip_output: ZipOutput or not. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: SplitDocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_split_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_split_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_split_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Split document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostSplitDocumentRequest request object with parameters + :return: SplitDocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_split_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_split_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/split' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('From') in path: + path = path.replace('{' + self.__downcase_first_letter('From' + '}'), request._from if request._from is not None else '') + else: + if request._from is not None: + query_params.append((self.__downcase_first_letter('From'), request._from)) # noqa: E501 + if self.__downcase_first_letter('To') in path: + path = path.replace('{' + self.__downcase_first_letter('To' + '}'), request.to if request.to is not None else '') + else: + if request.to is not None: + query_params.append((self.__downcase_first_letter('To'), request.to)) # noqa: E501 + if self.__downcase_first_letter('ZipOutput') in path: + path = path.replace('{' + self.__downcase_first_letter('ZipOutput' + '}'), request.zip_output if request.zip_output is not None else '') + else: + if request.zip_output is not None: + query_params.append((self.__downcase_first_letter('ZipOutput'), request.zip_output)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SplitDocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_update_document_bookmark(self, request, **kwargs): # noqa: E501 + """Update document bookmark. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param BookmarkData bookmark_data: with new bookmark data. (required) + :param str bookmark_name: The bookmark name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: BookmarkResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_update_document_bookmark_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_update_document_bookmark_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_update_document_bookmark_with_http_info(self, request, **kwargs): # noqa: E501 + """Update document bookmark. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostUpdateDocumentBookmarkRequest request object with parameters + :return: BookmarkResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_update_document_bookmark" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_update_document_bookmark`") # noqa: E501 + # verify the required parameter 'bookmark_data' is set + if request.bookmark_data is None: + raise ValueError("Missing the required parameter `bookmark_data` when calling `post_update_document_bookmark`") # noqa: E501 + # verify the required parameter 'bookmark_name' is set + if request.bookmark_name is None: + raise ValueError("Missing the required parameter `bookmark_name` when calling `post_update_document_bookmark`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/bookmarks/{bookmarkName}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.bookmark_name is not None: + path_params[self.__downcase_first_letter('BookmarkName')] = request.bookmark_name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.bookmark_data is not None: + body_params = request.bookmark_data + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BookmarkResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_update_document_fields(self, request, **kwargs): # noqa: E501 + """Update (reevaluate) fields in document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.post_update_document_fields_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.post_update_document_fields_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def post_update_document_fields_with_http_info(self, request, **kwargs): # noqa: E501 + """Update (reevaluate) fields in document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PostUpdateDocumentFieldsRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_update_document_fields" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `post_update_document_fields`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/updateFields' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_comment(self, request, **kwargs): # noqa: E501 + """Adds comment to document, returns inserted comment's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Comment comment: Comment data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: CommentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_comment_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_comment_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_comment_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds comment to document, returns inserted comment's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutCommentRequest request object with parameters + :return: CommentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_comment" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_comment`") # noqa: E501 + # verify the required parameter 'comment' is set + if request.comment is None: + raise ValueError("Missing the required parameter `comment` when calling `put_comment`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/comments' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.comment is not None: + body_params = request.comment + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='CommentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_convert_document(self, request, **kwargs): # noqa: E501 + """Convert document from request content to format specified. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param file document: Converting document (required) + :param str format: Format to convert. (required) + :param str storage: File storage, which have to be used. + :param str out_path: Path for saving operation result to the local storage. + :param str document_file_name: This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"sourceFilename\" will be used instead. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_convert_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_convert_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_convert_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Convert document from request content to format specified. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutConvertDocumentRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_convert_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'document' is set + if request.document is None: + raise ValueError("Missing the required parameter `document` when calling `put_convert_document`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `put_convert_document`") # noqa: E501 + + collection_formats = {} + path = '/words/convert' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('OutPath') in path: + path = path.replace('{' + self.__downcase_first_letter('OutPath' + '}'), request.out_path if request.out_path is not None else '') + else: + if request.out_path is not None: + query_params.append((self.__downcase_first_letter('OutPath'), request.out_path)) # noqa: E501 + if self.__downcase_first_letter('DocumentFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DocumentFileName' + '}'), request.document_file_name if request.document_file_name is not None else '') + else: + if request.document_file_name is not None: + query_params.append((self.__downcase_first_letter('DocumentFileName'), request.document_file_name)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.document is not None: + local_var_files.append((self.__downcase_first_letter('Document'), request.document)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_create_document(self, request, **kwargs): # noqa: E501 + """Creates new document. Document is created with format which is recognized from file extensions. Supported extentions: \".doc\", \".docx\", \".docm\", \".dot\", \".dotm\", \".dotx\", \".flatopc\", \".fopc\", \".flatopc_macro\", \".fopc_macro\", \".flatopc_template\", \".fopc_template\", \".flatopc_template_macro\", \".fopc_template_macro\", \".wordml\", \".wml\", \".rtf\" # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str storage: File storage, which have to be used. + :param str file_name: The file name. + :param str folder: The document folder. + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_create_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_create_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_create_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Creates new document. Document is created with format which is recognized from file extensions. Supported extentions: \".doc\", \".docx\", \".docm\", \".dot\", \".dotm\", \".dotx\", \".flatopc\", \".fopc\", \".flatopc_macro\", \".fopc_macro\", \".flatopc_template\", \".fopc_template\", \".flatopc_template_macro\", \".fopc_template_macro\", \".wordml\", \".wml\", \".rtf\" # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutCreateDocumentRequest request object with parameters + :return: DocumentResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_create_document" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + path = '/words/create' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('FileName') in path: + path = path.replace('{' + self.__downcase_first_letter('FileName' + '}'), request.file_name if request.file_name is not None else '') + else: + if request.file_name is not None: + query_params.append((self.__downcase_first_letter('FileName'), request.file_name)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DocumentResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_document_field_names(self, request, **kwargs): # noqa: E501 + """Read document field names. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param file template: File with template (required) + :param bool use_non_merge_fields: Use non merge fields or not. + :return: FieldNamesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_document_field_names_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_document_field_names_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_document_field_names_with_http_info(self, request, **kwargs): # noqa: E501 + """Read document field names. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutDocumentFieldNamesRequest request object with parameters + :return: FieldNamesResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_document_field_names" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'template' is set + if request.template is None: + raise ValueError("Missing the required parameter `template` when calling `put_document_field_names`") # noqa: E501 + + collection_formats = {} + path = '/words/mailMergeFieldNames' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('UseNonMergeFields') in path: + path = path.replace('{' + self.__downcase_first_letter('UseNonMergeFields' + '}'), request.use_non_merge_fields if request.use_non_merge_fields is not None else '') + else: + if request.use_non_merge_fields is not None: + query_params.append((self.__downcase_first_letter('UseNonMergeFields'), request.use_non_merge_fields)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.template is not None: + local_var_files.append((self.__downcase_first_letter('Template'), request.template)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FieldNamesResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_document_save_as_tiff(self, request, **kwargs): # noqa: E501 + """Convert document to tiff with detailed settings and save result to storage. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param TiffSaveOptionsData save_options: Tiff save options. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str result_file: The resulting file name. + :param bool use_anti_aliasing: Use antialiasing flag. + :param bool use_high_quality_rendering: Use high quality flag. + :param float image_brightness: Brightness for the generated images. + :param str image_color_mode: Color mode for the generated images. + :param float image_contrast: The contrast for the generated images. + :param str numeral_format: The images numeral format. + :param int page_count: Number of pages to render. + :param int page_index: Page index to start rendering. + :param str paper_color: Background image color. + :param str pixel_format: The pixel format of generated images. + :param float resolution: The resolution of generated images. + :param float scale: Zoom factor for generated images. + :param str tiff_compression: The compression tipe. + :param str dml_rendering_mode: Optional, default is Fallback. + :param str dml_effects_rendering_mode: Optional, default is Simplified. + :param str tiff_binarization_method: Optional, Tiff binarization method, possible values are: FloydSteinbergDithering, Threshold. + :param bool zip_output: Optional. A value determining zip output or not. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: SaveResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_document_save_as_tiff_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_document_save_as_tiff_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_document_save_as_tiff_with_http_info(self, request, **kwargs): # noqa: E501 + """Convert document to tiff with detailed settings and save result to storage. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutDocumentSaveAsTiffRequest request object with parameters + :return: SaveResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_document_save_as_tiff" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_document_save_as_tiff`") # noqa: E501 + # verify the required parameter 'save_options' is set + if request.save_options is None: + raise ValueError("Missing the required parameter `save_options` when calling `put_document_save_as_tiff`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/saveAs/tiff' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('ResultFile') in path: + path = path.replace('{' + self.__downcase_first_letter('ResultFile' + '}'), request.result_file if request.result_file is not None else '') + else: + if request.result_file is not None: + query_params.append((self.__downcase_first_letter('ResultFile'), request.result_file)) # noqa: E501 + if self.__downcase_first_letter('UseAntiAliasing') in path: + path = path.replace('{' + self.__downcase_first_letter('UseAntiAliasing' + '}'), request.use_anti_aliasing if request.use_anti_aliasing is not None else '') + else: + if request.use_anti_aliasing is not None: + query_params.append((self.__downcase_first_letter('UseAntiAliasing'), request.use_anti_aliasing)) # noqa: E501 + if self.__downcase_first_letter('UseHighQualityRendering') in path: + path = path.replace('{' + self.__downcase_first_letter('UseHighQualityRendering' + '}'), request.use_high_quality_rendering if request.use_high_quality_rendering is not None else '') + else: + if request.use_high_quality_rendering is not None: + query_params.append((self.__downcase_first_letter('UseHighQualityRendering'), request.use_high_quality_rendering)) # noqa: E501 + if self.__downcase_first_letter('ImageBrightness') in path: + path = path.replace('{' + self.__downcase_first_letter('ImageBrightness' + '}'), request.image_brightness if request.image_brightness is not None else '') + else: + if request.image_brightness is not None: + query_params.append((self.__downcase_first_letter('ImageBrightness'), request.image_brightness)) # noqa: E501 + if self.__downcase_first_letter('ImageColorMode') in path: + path = path.replace('{' + self.__downcase_first_letter('ImageColorMode' + '}'), request.image_color_mode if request.image_color_mode is not None else '') + else: + if request.image_color_mode is not None: + query_params.append((self.__downcase_first_letter('ImageColorMode'), request.image_color_mode)) # noqa: E501 + if self.__downcase_first_letter('ImageContrast') in path: + path = path.replace('{' + self.__downcase_first_letter('ImageContrast' + '}'), request.image_contrast if request.image_contrast is not None else '') + else: + if request.image_contrast is not None: + query_params.append((self.__downcase_first_letter('ImageContrast'), request.image_contrast)) # noqa: E501 + if self.__downcase_first_letter('NumeralFormat') in path: + path = path.replace('{' + self.__downcase_first_letter('NumeralFormat' + '}'), request.numeral_format if request.numeral_format is not None else '') + else: + if request.numeral_format is not None: + query_params.append((self.__downcase_first_letter('NumeralFormat'), request.numeral_format)) # noqa: E501 + if self.__downcase_first_letter('PageCount') in path: + path = path.replace('{' + self.__downcase_first_letter('PageCount' + '}'), request.page_count if request.page_count is not None else '') + else: + if request.page_count is not None: + query_params.append((self.__downcase_first_letter('PageCount'), request.page_count)) # noqa: E501 + if self.__downcase_first_letter('PageIndex') in path: + path = path.replace('{' + self.__downcase_first_letter('PageIndex' + '}'), request.page_index if request.page_index is not None else '') + else: + if request.page_index is not None: + query_params.append((self.__downcase_first_letter('PageIndex'), request.page_index)) # noqa: E501 + if self.__downcase_first_letter('PaperColor') in path: + path = path.replace('{' + self.__downcase_first_letter('PaperColor' + '}'), request.paper_color if request.paper_color is not None else '') + else: + if request.paper_color is not None: + query_params.append((self.__downcase_first_letter('PaperColor'), request.paper_color)) # noqa: E501 + if self.__downcase_first_letter('PixelFormat') in path: + path = path.replace('{' + self.__downcase_first_letter('PixelFormat' + '}'), request.pixel_format if request.pixel_format is not None else '') + else: + if request.pixel_format is not None: + query_params.append((self.__downcase_first_letter('PixelFormat'), request.pixel_format)) # noqa: E501 + if self.__downcase_first_letter('Resolution') in path: + path = path.replace('{' + self.__downcase_first_letter('Resolution' + '}'), request.resolution if request.resolution is not None else '') + else: + if request.resolution is not None: + query_params.append((self.__downcase_first_letter('Resolution'), request.resolution)) # noqa: E501 + if self.__downcase_first_letter('Scale') in path: + path = path.replace('{' + self.__downcase_first_letter('Scale' + '}'), request.scale if request.scale is not None else '') + else: + if request.scale is not None: + query_params.append((self.__downcase_first_letter('Scale'), request.scale)) # noqa: E501 + if self.__downcase_first_letter('TiffCompression') in path: + path = path.replace('{' + self.__downcase_first_letter('TiffCompression' + '}'), request.tiff_compression if request.tiff_compression is not None else '') + else: + if request.tiff_compression is not None: + query_params.append((self.__downcase_first_letter('TiffCompression'), request.tiff_compression)) # noqa: E501 + if self.__downcase_first_letter('DmlRenderingMode') in path: + path = path.replace('{' + self.__downcase_first_letter('DmlRenderingMode' + '}'), request.dml_rendering_mode if request.dml_rendering_mode is not None else '') + else: + if request.dml_rendering_mode is not None: + query_params.append((self.__downcase_first_letter('DmlRenderingMode'), request.dml_rendering_mode)) # noqa: E501 + if self.__downcase_first_letter('DmlEffectsRenderingMode') in path: + path = path.replace('{' + self.__downcase_first_letter('DmlEffectsRenderingMode' + '}'), request.dml_effects_rendering_mode if request.dml_effects_rendering_mode is not None else '') + else: + if request.dml_effects_rendering_mode is not None: + query_params.append((self.__downcase_first_letter('DmlEffectsRenderingMode'), request.dml_effects_rendering_mode)) # noqa: E501 + if self.__downcase_first_letter('TiffBinarizationMethod') in path: + path = path.replace('{' + self.__downcase_first_letter('TiffBinarizationMethod' + '}'), request.tiff_binarization_method if request.tiff_binarization_method is not None else '') + else: + if request.tiff_binarization_method is not None: + query_params.append((self.__downcase_first_letter('TiffBinarizationMethod'), request.tiff_binarization_method)) # noqa: E501 + if self.__downcase_first_letter('ZipOutput') in path: + path = path.replace('{' + self.__downcase_first_letter('ZipOutput' + '}'), request.zip_output if request.zip_output is not None else '') + else: + if request.zip_output is not None: + query_params.append((self.__downcase_first_letter('ZipOutput'), request.zip_output)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.save_options is not None: + body_params = request.save_options + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SaveResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_drawing_object(self, request, **kwargs): # noqa: E501 + """Adds drawing object to document, returns added drawing object's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str drawing_object: Drawing object parameters (required) + :param file image_file: File with image (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of drawing objects. + :return: DrawingObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_drawing_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds drawing object to document, returns added drawing object's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutDrawingObjectRequest request object with parameters + :return: DrawingObjectResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_drawing_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_drawing_object`") # noqa: E501 + # verify the required parameter 'drawing_object' is set + if request.drawing_object is None: + raise ValueError("Missing the required parameter `drawing_object` when calling `put_drawing_object`") # noqa: E501 + # verify the required parameter 'image_file' is set + if request.image_file is None: + raise ValueError("Missing the required parameter `image_file` when calling `put_drawing_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.drawing_object is not None: + form_params.append((self.__downcase_first_letter('DrawingObject'), request.drawing_object)) # noqa: E501 + if request.image_file is not None: + local_var_files.append((self.__downcase_first_letter('ImageFile'), request.image_file)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='DrawingObjectResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_execute_mail_merge_online(self, request, **kwargs): # noqa: E501 + """Execute document mail merge online. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param file template: File with template (required) + :param file data: File with mailmerge data (required) + :param bool with_regions: With regions flag. + :param str cleanup: Clean up options. + :param str document_file_name: This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_execute_mail_merge_online_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_execute_mail_merge_online_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_execute_mail_merge_online_with_http_info(self, request, **kwargs): # noqa: E501 + """Execute document mail merge online. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutExecuteMailMergeOnlineRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_execute_mail_merge_online" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'template' is set + if request.template is None: + raise ValueError("Missing the required parameter `template` when calling `put_execute_mail_merge_online`") # noqa: E501 + # verify the required parameter 'data' is set + if request.data is None: + raise ValueError("Missing the required parameter `data` when calling `put_execute_mail_merge_online`") # noqa: E501 + + collection_formats = {} + path = '/words/executeMailMerge' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('WithRegions') in path: + path = path.replace('{' + self.__downcase_first_letter('WithRegions' + '}'), request.with_regions if request.with_regions is not None else '') + else: + if request.with_regions is not None: + query_params.append((self.__downcase_first_letter('WithRegions'), request.with_regions)) # noqa: E501 + if self.__downcase_first_letter('Cleanup') in path: + path = path.replace('{' + self.__downcase_first_letter('Cleanup' + '}'), request.cleanup if request.cleanup is not None else '') + else: + if request.cleanup is not None: + query_params.append((self.__downcase_first_letter('Cleanup'), request.cleanup)) # noqa: E501 + if self.__downcase_first_letter('DocumentFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DocumentFileName' + '}'), request.document_file_name if request.document_file_name is not None else '') + else: + if request.document_file_name is not None: + query_params.append((self.__downcase_first_letter('DocumentFileName'), request.document_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.template is not None: + local_var_files.append((self.__downcase_first_letter('Template'), request.template)) # noqa: E501 + if request.data is not None: + local_var_files.append((self.__downcase_first_letter('Data'), request.data)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_execute_template_online(self, request, **kwargs): # noqa: E501 + """Populate document template with data online. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param file template: File with template (required) + :param file data: File with mailmerge data (required) + :param str cleanup: Clean up options. + :param bool use_whole_paragraph_as_region: Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. + :param bool with_regions: Merge with regions or not. True by default + :param str document_file_name: This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. Note: if withRegions == true executeTemplate updates fields only inside regions + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_execute_template_online_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_execute_template_online_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_execute_template_online_with_http_info(self, request, **kwargs): # noqa: E501 + """Populate document template with data online. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutExecuteTemplateOnlineRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_execute_template_online" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'template' is set + if request.template is None: + raise ValueError("Missing the required parameter `template` when calling `put_execute_template_online`") # noqa: E501 + # verify the required parameter 'data' is set + if request.data is None: + raise ValueError("Missing the required parameter `data` when calling `put_execute_template_online`") # noqa: E501 + + collection_formats = {} + path = '/words/executeTemplate' + path_params = {} + + query_params = [] + if self.__downcase_first_letter('Cleanup') in path: + path = path.replace('{' + self.__downcase_first_letter('Cleanup' + '}'), request.cleanup if request.cleanup is not None else '') + else: + if request.cleanup is not None: + query_params.append((self.__downcase_first_letter('Cleanup'), request.cleanup)) # noqa: E501 + if self.__downcase_first_letter('UseWholeParagraphAsRegion') in path: + path = path.replace('{' + self.__downcase_first_letter('UseWholeParagraphAsRegion' + '}'), request.use_whole_paragraph_as_region if request.use_whole_paragraph_as_region is not None else '') + else: + if request.use_whole_paragraph_as_region is not None: + query_params.append((self.__downcase_first_letter('UseWholeParagraphAsRegion'), request.use_whole_paragraph_as_region)) # noqa: E501 + if self.__downcase_first_letter('WithRegions') in path: + path = path.replace('{' + self.__downcase_first_letter('WithRegions' + '}'), request.with_regions if request.with_regions is not None else '') + else: + if request.with_regions is not None: + query_params.append((self.__downcase_first_letter('WithRegions'), request.with_regions)) # noqa: E501 + if self.__downcase_first_letter('DocumentFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DocumentFileName' + '}'), request.document_file_name if request.document_file_name is not None else '') + else: + if request.document_file_name is not None: + query_params.append((self.__downcase_first_letter('DocumentFileName'), request.document_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + if request.template is not None: + local_var_files.append((self.__downcase_first_letter('Template'), request.template)) # noqa: E501 + if request.data is not None: + local_var_files.append((self.__downcase_first_letter('Data'), request.data)) # noqa: E501 + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['multipart/form-data']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_field(self, request, **kwargs): # noqa: E501 + """Adds field to document, returns inserted field's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Field field: Field data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of fields. + :param str insert_before_node: Field will be inserted before node with id=\"nodeId\". + :return: FieldResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds field to document, returns inserted field's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutFieldRequest request object with parameters + :return: FieldResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_field`") # noqa: E501 + # verify the required parameter 'field' is set + if request.field is None: + raise ValueError("Missing the required parameter `field` when calling `put_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/fields' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('InsertBeforeNode') in path: + path = path.replace('{' + self.__downcase_first_letter('InsertBeforeNode' + '}'), request.insert_before_node if request.insert_before_node is not None else '') + else: + if request.insert_before_node is not None: + query_params.append((self.__downcase_first_letter('InsertBeforeNode'), request.insert_before_node)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.field is not None: + body_params = request.field + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FieldResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_footnote(self, request, **kwargs): # noqa: E501 + """Adds footnote to document, returns added footnote's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Footnote footnote_dto: Footnote data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node, which contains collection of footnotes. + :return: FootnoteResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_footnote_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_footnote_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_footnote_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds footnote to document, returns added footnote's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutFootnoteRequest request object with parameters + :return: FootnoteResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_footnote" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_footnote`") # noqa: E501 + # verify the required parameter 'footnote_dto' is set + if request.footnote_dto is None: + raise ValueError("Missing the required parameter `footnote_dto` when calling `put_footnote`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/footnotes' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.footnote_dto is not None: + body_params = request.footnote_dto + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FootnoteResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_form_field(self, request, **kwargs): # noqa: E501 + """Adds form field to paragraph, returns added form field's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param FormField form_field: From field data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node that contains collection of formfields. + :param str insert_before_node: Form field will be inserted before node with index. + :return: FormFieldResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_form_field_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_form_field_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_form_field_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds form field to paragraph, returns added form field's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutFormFieldRequest request object with parameters + :return: FormFieldResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_form_field" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_form_field`") # noqa: E501 + # verify the required parameter 'form_field' is set + if request.form_field is None: + raise ValueError("Missing the required parameter `form_field` when calling `put_form_field`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/formfields' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('InsertBeforeNode') in path: + path = path.replace('{' + self.__downcase_first_letter('InsertBeforeNode' + '}'), request.insert_before_node if request.insert_before_node is not None else '') + else: + if request.insert_before_node is not None: + query_params.append((self.__downcase_first_letter('InsertBeforeNode'), request.insert_before_node)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.form_field is not None: + body_params = request.form_field + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='FormFieldResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_header_footer(self, request, **kwargs): # noqa: E501 + """Insert to document header or footer. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str header_footer_type: Type of header/footer. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str section_path: Path to parent section. + :return: HeaderFooterResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_header_footer_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_header_footer_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_header_footer_with_http_info(self, request, **kwargs): # noqa: E501 + """Insert to document header or footer. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutHeaderFooterRequest request object with parameters + :return: HeaderFooterResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_header_footer" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_header_footer`") # noqa: E501 + # verify the required parameter 'header_footer_type' is set + if request.header_footer_type is None: + raise ValueError("Missing the required parameter `header_footer_type` when calling `put_header_footer`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{sectionPath}/headersfooters' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('SectionPath') in path: + path = path.replace('{' + self.__downcase_first_letter('SectionPath' + '}'), request.section_path if request.section_path is not None else '') + else: + if request.section_path is not None: + query_params.append((self.__downcase_first_letter('SectionPath'), request.section_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.header_footer_type is not None: + body_params = request.header_footer_type + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='HeaderFooterResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_paragraph(self, request, **kwargs): # noqa: E501 + """Adds paragraph to document, returns added paragraph's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param ParagraphInsert paragraph: Paragraph data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str node_path: Path to node which contains paragraphs. + :param str insert_before_node: Paragraph will be inserted before node with index. + :return: ParagraphResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_paragraph_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_paragraph_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_paragraph_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds paragraph to document, returns added paragraph's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutParagraphRequest request object with parameters + :return: ParagraphResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_paragraph" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_paragraph`") # noqa: E501 + # verify the required parameter 'paragraph' is set + if request.paragraph is None: + raise ValueError("Missing the required parameter `paragraph` when calling `put_paragraph`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/paragraphs' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('InsertBeforeNode') in path: + path = path.replace('{' + self.__downcase_first_letter('InsertBeforeNode' + '}'), request.insert_before_node if request.insert_before_node is not None else '') + else: + if request.insert_before_node is not None: + query_params.append((self.__downcase_first_letter('InsertBeforeNode'), request.insert_before_node)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.paragraph is not None: + body_params = request.paragraph + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ParagraphResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_protect_document(self, request, **kwargs): # noqa: E501 + """Protect document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param ProtectionRequest protection_request: with protection settings. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_protect_document_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_protect_document_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_protect_document_with_http_info(self, request, **kwargs): # noqa: E501 + """Protect document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutProtectDocumentRequest request object with parameters + :return: ProtectionDataResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_protect_document" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_protect_document`") # noqa: E501 + # verify the required parameter 'protection_request' is set + if request.protection_request is None: + raise ValueError("Missing the required parameter `protection_request` when calling `put_protect_document`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/protection' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.protection_request is not None: + body_params = request.protection_request + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ProtectionDataResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def put_run(self, request, **kwargs): # noqa: E501 + """Adds run to document, returns added paragraph's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str paragraph_path: Path to parent paragraph. (required) + :param Run run: Run data. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param str insert_before_node: Paragraph will be inserted before node with index. + :return: RunResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.put_run_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.put_run_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def put_run_with_http_info(self, request, **kwargs): # noqa: E501 + """Adds run to document, returns added paragraph's data. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param PutRunRequest request object with parameters + :return: RunResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method put_run" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `put_run`") # noqa: E501 + # verify the required parameter 'paragraph_path' is set + if request.paragraph_path is None: + raise ValueError("Missing the required parameter `paragraph_path` when calling `put_run`") # noqa: E501 + # verify the required parameter 'run' is set + if request.run is None: + raise ValueError("Missing the required parameter `run` when calling `put_run`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{paragraphPath}/runs' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.paragraph_path is not None: + path_params[self.__downcase_first_letter('ParagraphPath')] = request.paragraph_path # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('InsertBeforeNode') in path: + path = path.replace('{' + self.__downcase_first_letter('InsertBeforeNode' + '}'), request.insert_before_node if request.insert_before_node is not None else '') + else: + if request.insert_before_node is not None: + query_params.append((self.__downcase_first_letter('InsertBeforeNode'), request.insert_before_node)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.run is not None: + body_params = request.run + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='RunResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def reject_all_revisions(self, request, **kwargs): # noqa: E501 + """Reject all revisions in document # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :return: RevisionsModificationResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.reject_all_revisions_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.reject_all_revisions_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def reject_all_revisions_with_http_info(self, request, **kwargs): # noqa: E501 + """Reject all revisions in document # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param RejectAllRevisionsRequest request object with parameters + :return: RevisionsModificationResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method reject_all_revisions" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `reject_all_revisions`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/revisions/rejectAll' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='RevisionsModificationResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def render_drawing_object(self, request, **kwargs): # noqa: E501 + """Renders drawing object to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str format: The destination format. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains drawing objects. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.render_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.render_drawing_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def render_drawing_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Renders drawing object to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param RenderDrawingObjectRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method render_drawing_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `render_drawing_object`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `render_drawing_object`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `render_drawing_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/drawingObjects/{index}/render' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def render_math_object(self, request, **kwargs): # noqa: E501 + """Renders math object to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str format: The destination format. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains office math objects. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.render_math_object_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.render_math_object_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def render_math_object_with_http_info(self, request, **kwargs): # noqa: E501 + """Renders math object to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param RenderMathObjectRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method render_math_object" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `render_math_object`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `render_math_object`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `render_math_object`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/OfficeMathObjects/{index}/render' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def render_page(self, request, **kwargs): # noqa: E501 + """Renders page to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param int page_index: Comment index (required) + :param str format: The destination format. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.render_page_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.render_page_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def render_page_with_http_info(self, request, **kwargs): # noqa: E501 + """Renders page to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param RenderPageRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method render_page" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `render_page`") # noqa: E501 + # verify the required parameter 'page_index' is set + if request.page_index is None: + raise ValueError("Missing the required parameter `page_index` when calling `render_page`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `render_page`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/pages/{pageIndex}/render' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.page_index is not None: + path_params[self.__downcase_first_letter('PageIndex')] = request.page_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def render_paragraph(self, request, **kwargs): # noqa: E501 + """Renders paragraph to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str format: The destination format. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains paragraphs. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.render_paragraph_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.render_paragraph_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def render_paragraph_with_http_info(self, request, **kwargs): # noqa: E501 + """Renders paragraph to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param RenderParagraphRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method render_paragraph" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `render_paragraph`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `render_paragraph`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `render_paragraph`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/paragraphs/{index}/render' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def render_table(self, request, **kwargs): # noqa: E501 + """Renders table to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The file name. (required) + :param str format: The destination format. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str node_path: Path to node, which contains tables. + :param str fonts_location: Folder in filestorage with custom fonts. + :return: file + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.render_table_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.render_table_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def render_table_with_http_info(self, request, **kwargs): # noqa: E501 + """Renders table to specified format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param RenderTableRequest request object with parameters + :return: file + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method render_table" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `render_table`") # noqa: E501 + # verify the required parameter 'format' is set + if request.format is None: + raise ValueError("Missing the required parameter `format` when calling `render_table`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `render_table`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables/{index}/render' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Format') in path: + path = path.replace('{' + self.__downcase_first_letter('Format' + '}'), request.format if request.format is not None else '') + else: + if request.format is not None: + query_params.append((self.__downcase_first_letter('Format'), request.format)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + if self.__downcase_first_letter('FontsLocation') in path: + path = path.replace('{' + self.__downcase_first_letter('FontsLocation' + '}'), request.fonts_location if request.fonts_location is not None else '') + else: + if request.fonts_location is not None: + query_params.append((self.__downcase_first_letter('FontsLocation'), request.fonts_location)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='file', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def reset_cache(self, request, **kwargs): # noqa: E501 + """Resets font's cache. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.reset_cache_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.reset_cache_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def reset_cache_with_http_info(self, request, **kwargs): # noqa: E501 + """Resets font's cache. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param ResetCacheRequest request object with parameters + :return: AsposeResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method reset_cache" % key + ) + params[key] = val + del params['kwargs'] + + collection_formats = {} + path = '/words/fonts/cache' + path_params = {} + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AsposeResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def search(self, request, **kwargs): # noqa: E501 + """Search text in document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str pattern: The regular expression used to find matches. (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :return: SearchResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.search_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.search_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def search_with_http_info(self, request, **kwargs): # noqa: E501 + """Search text in document. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param SearchRequest request object with parameters + :return: SearchResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method search" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `search`") # noqa: E501 + # verify the required parameter 'pattern' is set + if request.pattern is None: + raise ValueError("Missing the required parameter `pattern` when calling `search`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/search' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Pattern') in path: + path = path.replace('{' + self.__downcase_first_letter('Pattern' + '}'), request.pattern if request.pattern is not None else '') + else: + if request.pattern is not None: + query_params.append((self.__downcase_first_letter('Pattern'), request.pattern)) # noqa: E501 + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SearchResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def update_border(self, request, **kwargs): # noqa: E501 + """Updates border properties. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param Border border_properties: Border properties (required) + :param str node_path: Path to node with border(node should be cell or row). (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: BorderResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.update_border_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.update_border_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def update_border_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates border properties. # noqa: E501 + + 'nodePath' should refer to node with cell or row # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param UpdateBorderRequest request object with parameters + :return: BorderResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_border" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `update_border`") # noqa: E501 + # verify the required parameter 'border_properties' is set + if request.border_properties is None: + raise ValueError("Missing the required parameter `border_properties` when calling `update_border`") # noqa: E501 + # verify the required parameter 'node_path' is set + if request.node_path is None: + raise ValueError("Missing the required parameter `node_path` when calling `update_border`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `update_border`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/borders/{index}' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.node_path is not None: + path_params[self.__downcase_first_letter('NodePath')] = request.node_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.border_properties is not None: + body_params = request.border_properties + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='BorderResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def update_section_page_setup(self, request, **kwargs): # noqa: E501 + """Update page setup of section. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int section_index: Section index (required) + :param PageSetup page_setup: Page setup properties dto (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :return: SectionPageSetupResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.update_section_page_setup_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.update_section_page_setup_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def update_section_page_setup_with_http_info(self, request, **kwargs): # noqa: E501 + """Update page setup of section. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param UpdateSectionPageSetupRequest request object with parameters + :return: SectionPageSetupResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_section_page_setup" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `update_section_page_setup`") # noqa: E501 + # verify the required parameter 'section_index' is set + if request.section_index is None: + raise ValueError("Missing the required parameter `section_index` when calling `update_section_page_setup`") # noqa: E501 + # verify the required parameter 'page_setup' is set + if request.page_setup is None: + raise ValueError("Missing the required parameter `page_setup` when calling `update_section_page_setup`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/sections/{sectionIndex}/pageSetup' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.section_index is not None: + path_params[self.__downcase_first_letter('SectionIndex')] = request.section_index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.page_setup is not None: + body_params = request.page_setup + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='SectionPageSetupResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def update_table_cell_format(self, request, **kwargs): # noqa: E501 + """Updates a table cell format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_row_path: Path to table row. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param TableCellFormat format: The properties. + :return: TableCellFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.update_table_cell_format_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.update_table_cell_format_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def update_table_cell_format_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates a table cell format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param UpdateTableCellFormatRequest request object with parameters + :return: TableCellFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_table_cell_format" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `update_table_cell_format`") # noqa: E501 + # verify the required parameter 'table_row_path' is set + if request.table_row_path is None: + raise ValueError("Missing the required parameter `table_row_path` when calling `update_table_cell_format`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `update_table_cell_format`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tableRowPath}/cells/{index}/cellformat' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_row_path is not None: + path_params[self.__downcase_first_letter('TableRowPath')] = request.table_row_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.format is not None: + body_params = request.format + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableCellFormatResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def update_table_properties(self, request, **kwargs): # noqa: E501 + """Updates a table properties. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param TableProperties properties: The properties. + :param str node_path: Path to node, which contains tables. + :return: TablePropertiesResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.update_table_properties_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.update_table_properties_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def update_table_properties_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates a table properties. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param UpdateTablePropertiesRequest request object with parameters + :return: TablePropertiesResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_table_properties" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `update_table_properties`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `update_table_properties`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{nodePath}/tables/{index}/properties' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + if self.__downcase_first_letter('NodePath') in path: + path = path.replace('{' + self.__downcase_first_letter('NodePath' + '}'), request.node_path if request.node_path is not None else '') + else: + if request.node_path is not None: + query_params.append((self.__downcase_first_letter('NodePath'), request.node_path)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.properties is not None: + body_params = request.properties + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TablePropertiesResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def update_table_row_format(self, request, **kwargs): # noqa: E501 + """Updates a table row format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param str name: The document name. (required) + :param str table_path: Path to table. (required) + :param int index: Object's index (required) + :param str folder: Original document folder. + :param str storage: File storage, which have to be used. + :param str load_encoding: Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param str password: Password for opening an encrypted document. + :param str dest_file_name: Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param str revision_author: Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param str revision_date_time: The date and time to use for revisions. + :param TableRowFormat format: Table row format. + :return: TableRowFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + try: + if kwargs.get('is_async'): + return self.update_table_row_format_with_http_info(request, **kwargs) # noqa: E501 + (data) = self.update_table_row_format_with_http_info(request, **kwargs) # noqa: E501 + return data + except ApiException as e: + if e.status == 401: + self.__refresh_token() + raise ApiException('Access token has expired. Token has been refreshed, please run request again.') + + def update_table_row_format_with_http_info(self, request, **kwargs): # noqa: E501 + """Updates a table row format. # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass is_async=True + + :param is_async bool + :param UpdateTableRowFormatRequest request object with parameters + :return: TableRowFormatResponse + If the method is called asynchronously, + returns the request thread. + """ + + params = locals() + params['is_async'] = '' + params['_return_http_data_only'] = False + params['_preload_content'] = True + params['_request_timeout'] = '' + for key, val in six.iteritems(params['kwargs']): + if key not in params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_table_row_format" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'name' is set + if request.name is None: + raise ValueError("Missing the required parameter `name` when calling `update_table_row_format`") # noqa: E501 + # verify the required parameter 'table_path' is set + if request.table_path is None: + raise ValueError("Missing the required parameter `table_path` when calling `update_table_row_format`") # noqa: E501 + # verify the required parameter 'index' is set + if request.index is None: + raise ValueError("Missing the required parameter `index` when calling `update_table_row_format`") # noqa: E501 + + collection_formats = {} + path = '/words/{name}/{tablePath}/rows/{index}/rowformat' + path_params = {} + if request.name is not None: + path_params[self.__downcase_first_letter('Name')] = request.name # noqa: E501 + if request.table_path is not None: + path_params[self.__downcase_first_letter('TablePath')] = request.table_path # noqa: E501 + if request.index is not None: + path_params[self.__downcase_first_letter('Index')] = request.index # noqa: E501 + + query_params = [] + if self.__downcase_first_letter('Folder') in path: + path = path.replace('{' + self.__downcase_first_letter('Folder' + '}'), request.folder if request.folder is not None else '') + else: + if request.folder is not None: + query_params.append((self.__downcase_first_letter('Folder'), request.folder)) # noqa: E501 + if self.__downcase_first_letter('Storage') in path: + path = path.replace('{' + self.__downcase_first_letter('Storage' + '}'), request.storage if request.storage is not None else '') + else: + if request.storage is not None: + query_params.append((self.__downcase_first_letter('Storage'), request.storage)) # noqa: E501 + if self.__downcase_first_letter('LoadEncoding') in path: + path = path.replace('{' + self.__downcase_first_letter('LoadEncoding' + '}'), request.load_encoding if request.load_encoding is not None else '') + else: + if request.load_encoding is not None: + query_params.append((self.__downcase_first_letter('LoadEncoding'), request.load_encoding)) # noqa: E501 + if self.__downcase_first_letter('Password') in path: + path = path.replace('{' + self.__downcase_first_letter('Password' + '}'), request.password if request.password is not None else '') + else: + if request.password is not None: + query_params.append((self.__downcase_first_letter('Password'), request.password)) # noqa: E501 + if self.__downcase_first_letter('DestFileName') in path: + path = path.replace('{' + self.__downcase_first_letter('DestFileName' + '}'), request.dest_file_name if request.dest_file_name is not None else '') + else: + if request.dest_file_name is not None: + query_params.append((self.__downcase_first_letter('DestFileName'), request.dest_file_name)) # noqa: E501 + if self.__downcase_first_letter('RevisionAuthor') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionAuthor' + '}'), request.revision_author if request.revision_author is not None else '') + else: + if request.revision_author is not None: + query_params.append((self.__downcase_first_letter('RevisionAuthor'), request.revision_author)) # noqa: E501 + if self.__downcase_first_letter('RevisionDateTime') in path: + path = path.replace('{' + self.__downcase_first_letter('RevisionDateTime' + '}'), request.revision_date_time if request.revision_date_time is not None else '') + else: + if request.revision_date_time is not None: + query_params.append((self.__downcase_first_letter('RevisionDateTime'), request.revision_date_time)) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = [] + + body_params = None + if request.format is not None: + body_params = request.format + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/xml', 'application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/xml', 'application/json']) # noqa: E501 + + # Authentication setting + auth_settings = ['oauth'] # noqa: E501 + + return self.api_client.call_api( + path, 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TableRowFormatResponse', # noqa: E501 + auth_settings=auth_settings, + is_async=params.get('is_async'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + # Helper method to convert first letter to downcase + def __downcase_first_letter(self, s): + if len(s) == 0: + return str + else: + return s[0].lower() + s[1:] + + + def __request_token(self): + config = self.api_client.configuration + api_version = config.api_version + config.api_version = '' + request_url = "oauth2/token" + form_params = [('grant_type', 'client_credentials'), ('client_id', config.api_key['app_sid']), + ('client_secret', config.api_key['api_key'])] + + header_params = {'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded'} + + data = self.api_client.call_api(request_url, 'POST', + {}, + [], + header_params, + post_params=form_params, + response_type='object', + files={}, _return_http_data_only=True) + access_token = data['access_token'] if six.PY3 else data['access_token'].encode('utf8') + refresh_token = data['refresh_token'] if six.PY3 else data['refresh_token'].encode('utf8') + self.api_client.configuration.access_token = access_token + self.api_client.configuration.api_version = api_version + self.api_client.configuration.refresh_token = refresh_token + + + def __refresh_token(self): + config = self.api_client.configuration + api_version = config.api_version + config.api_version = '' + request_url = "oauth2/token" + form_params = [('grant_type', 'refresh_token'), ('refresh_token', config.refresh_token)] + + header_params = {'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded'} + + data = self.api_client.call_api(request_url, 'POST', + {}, + [], + header_params, + post_params=form_params, + response_type='object', + files={}, _return_http_data_only=True) + access_token = data['access_token'] if six.PY3 else data['access_token'].encode('utf8') + refresh_token = data['refresh_token'] if six.PY3 else data['refresh_token'].encode('utf8') + self.api_client.configuration.access_token = access_token + self.api_client.configuration.api_version = api_version + self.api_client.configuration.refresh_token = refresh_token \ No newline at end of file diff --git a/asposewordscloud/configuration.py b/asposewordscloud/configuration.py new file mode 100644 index 00000000..c53a2ed1 --- /dev/null +++ b/asposewordscloud/configuration.py @@ -0,0 +1,280 @@ +# coding: utf-8 + +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- + +from __future__ import absolute_import + +import copy +import logging +import multiprocessing +import sys +import urllib3 + +import six +from six.moves import http_client as httplib + + +class TypeWithDefault(type): + def __init__(cls, name, bases, dct): + super(TypeWithDefault, cls).__init__(name, bases, dct) + cls._default = None + + def __call__(cls): + if cls._default is None: + cls._default = type.__call__(cls) + return copy.copy(cls._default) + + def set_default(cls, default): + cls._default = copy.copy(default) + + +class Configuration(six.with_metaclass(TypeWithDefault, object)): + """ Class which contains configuration parameters + """ + + def __init__(self): + """Constructor""" + # Default Base url + self.host = "https://api.aspose.com" + # Default api version is v1. Available values are v1, v1.1, v2, v3 + self.api_version = "v1" + # Temp file folder for downloading files + self.temp_folder_path = None + + # Authentication Settings + # dict to store API key(s) + self.api_key = {} + self.api_key['api_key'] = "" + self.api_key['app_sid'] = "" + # dict to store API prefix (e.g. Bearer) + self.api_key_prefix = {} + # Username for HTTP basic authentication + self.username = "" + # Password for HTTP basic authentication + self.password = "" + + # access token for OAuth + self.access_token = "" + + # Logging Settings + self.logger = {} + self.logger["package_logger"] = logging.getLogger("asposewordscloud") + self.logger["urllib3_logger"] = logging.getLogger("urllib3") + # Log format + self.logger_format = '%(asctime)s %(levelname)s %(message)s' + # Log stream handler + self.logger_stream_handler = None + # Log file handler + self.logger_file_handler = None + # Debug file location + self.logger_file = None + # Debug switch + self.debug = False + + # SSL/TLS verification + # Set this to false to skip verifying SSL certificate when calling API + # from https server. + self.verify_ssl = True + # Set this to customize the certificate file to verify the peer. + self.ssl_ca_cert = None + # client certificate file + self.cert_file = None + # client key file + self.key_file = None + # Set this to True/False to enable/disable SSL hostname verification. + self.assert_hostname = None + + # urllib3 connection pool's maximum number of connections saved + # per pool. urllib3 uses 1 connection as default value, but this is + # not the best value when you are making a lot of possibly parallel + # requests to the same host, which is often the case here. + # cpu_count * 5 is used as default value to increase performance. + self.connection_pool_maxsize = multiprocessing.cpu_count() * 5 + + # Proxy URL + self.proxy = None + # Safe chars for path_param + self.safe_chars_for_path_param = '' + + @property + def logger_file(self): + """The logger file. + + If the logger_file is None, then add stream handler and remove file + handler. Otherwise, add file handler and remove stream handler. + + :param value: The logger_file path. + :type: str + """ + return self.__logger_file + + @logger_file.setter + def logger_file(self, value): + """The logger file. + + If the logger_file is None, then add stream handler and remove file + handler. Otherwise, add file handler and remove stream handler. + + :param value: The logger_file path. + :type: str + """ + self.__logger_file = value + if self.__logger_file: + # If set logging file, + # then add file handler and remove stream handler. + self.logger_file_handler = logging.FileHandler(self.__logger_file) + self.logger_file_handler.setFormatter(self.logger_formatter) + for _, logger in six.iteritems(self.logger): + logger.addHandler(self.logger_file_handler) + if self.logger_stream_handler: + logger.removeHandler(self.logger_stream_handler) + else: + # If not set logging file, + # then add stream handler and remove file handler. + self.logger_stream_handler = logging.StreamHandler() + self.logger_stream_handler.setFormatter(self.logger_formatter) + for _, logger in six.iteritems(self.logger): + logger.addHandler(self.logger_stream_handler) + if self.logger_file_handler: + logger.removeHandler(self.logger_file_handler) + + @property + def debug(self): + """Debug status + + :param value: The debug status, True or False. + :type: bool + """ + return self.__debug + + @debug.setter + def debug(self, value): + """Debug status + + :param value: The debug status, True or False. + :type: bool + """ + self.__debug = value + if self.__debug: + # if debug status is True, turn on debug logging + for _, logger in six.iteritems(self.logger): + logger.setLevel(logging.DEBUG) + # turn on httplib debug + httplib.HTTPConnection.debuglevel = 1 + else: + # if debug status is False, turn off debug logging, + # setting log level to default `logging.WARNING` + for _, logger in six.iteritems(self.logger): + logger.setLevel(logging.WARNING) + # turn off httplib debug + httplib.HTTPConnection.debuglevel = 0 + + @property + def logger_format(self): + """The logger format. + + The logger_formatter will be updated when sets logger_format. + + :param value: The format string. + :type: str + """ + return self.__logger_format + + @logger_format.setter + def logger_format(self, value): + """The logger format. + + The logger_formatter will be updated when sets logger_format. + + :param value: The format string. + :type: str + """ + self.__logger_format = value + self.logger_formatter = logging.Formatter(self.__logger_format) + + def get_api_key_with_prefix(self, identifier): + """Gets API key (with prefix if set). + + :param identifier: The identifier of apiKey. + :return: The token for api key authentication. + """ + if (self.api_key.get(identifier) and + self.api_key_prefix.get(identifier)): + return self.api_key_prefix[identifier] + ' ' + self.api_key[identifier] # noqa: E501 + elif self.api_key.get(identifier): + return self.api_key[identifier] + + def get_basic_auth_token(self): + """Gets HTTP basic authentication header (string). + + :return: The token for basic HTTP authentication. + """ + return urllib3.util.make_headers( + basic_auth=self.username + ':' + self.password + ).get('authorization') + + def auth_settings(self): + """Gets Auth Settings dict for api client. + + :return: The Auth Settings information dict. + """ + return { + 'appsid': + { + 'type': 'api_key', + 'in': 'query', + 'key': 'Appsid', + 'value': self.get_api_key_with_prefix('Appsid') + }, + + 'oauth': + { + 'type': 'oauth2', + 'in': 'header', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + }, + 'signature': + { + 'type': 'api_key', + 'in': 'query', + 'key': 'Signature', + 'value': self.get_api_key_with_prefix('Signature') + }, + + } + + def to_debug_report(self): + """Gets the essential information for debugging. + + :return: The report for debugging. + """ + return "Python SDK Debug Report:\n"\ + "OS: {env}\n"\ + "Python Version: {pyversion}\n"\ + "Version of the API: 18.7.0\n"\ + "SDK Package Version: 18.7".\ + format(env=sys.platform, pyversion=sys.version) diff --git a/asposewordscloud/models/__init__.py b/asposewordscloud/models/__init__.py new file mode 100644 index 00000000..9e974900 --- /dev/null +++ b/asposewordscloud/models/__init__.py @@ -0,0 +1,179 @@ +# coding: utf-8 + +# flake8: noqa +from __future__ import absolute_import + +# import models into model package +from asposewordscloud.models.aspose_response import AsposeResponse +from asposewordscloud.models.bookmark_data import BookmarkData +from asposewordscloud.models.bookmarks_outline_level_data import BookmarksOutlineLevelData +from asposewordscloud.models.classification_result import ClassificationResult +from asposewordscloud.models.compare_data import CompareData +from asposewordscloud.models.document import Document +from asposewordscloud.models.document_entry import DocumentEntry +from asposewordscloud.models.document_entry_list import DocumentEntryList +from asposewordscloud.models.document_position import DocumentPosition +from asposewordscloud.models.document_stat_data import DocumentStatData +from asposewordscloud.models.downsample_options_data import DownsampleOptionsData +from asposewordscloud.models.font_info import FontInfo +from asposewordscloud.models.footnotes_stat_data import FootnotesStatData +from asposewordscloud.models.graphics_quality_options_data import GraphicsQualityOptionsData +from asposewordscloud.models.link import Link +from asposewordscloud.models.link_element import LinkElement +from asposewordscloud.models.load_web_document_data import LoadWebDocumentData +from asposewordscloud.models.metafile_rendering_options_data import MetafileRenderingOptionsData +from asposewordscloud.models.modification_operation_result import ModificationOperationResult +from asposewordscloud.models.outline_options_data import OutlineOptionsData +from asposewordscloud.models.page_number import PageNumber +from asposewordscloud.models.page_stat_data import PageStatData +from asposewordscloud.models.paragraph_insert import ParagraphInsert +from asposewordscloud.models.pdf_digital_signature_details_data import PdfDigitalSignatureDetailsData +from asposewordscloud.models.pdf_encryption_details_data import PdfEncryptionDetailsData +from asposewordscloud.models.preferred_width import PreferredWidth +from asposewordscloud.models.protection_data import ProtectionData +from asposewordscloud.models.protection_request import ProtectionRequest +from asposewordscloud.models.replace_text_request import ReplaceTextRequest +from asposewordscloud.models.save_options_data import SaveOptionsData +from asposewordscloud.models.save_result import SaveResult +from asposewordscloud.models.search_result import SearchResult +from asposewordscloud.models.split_document_result import SplitDocumentResult +from asposewordscloud.models.story_child_nodes import StoryChildNodes +from asposewordscloud.models.string_format_data import StringFormatData +from asposewordscloud.models.table_cell_insert import TableCellInsert +from asposewordscloud.models.table_insert import TableInsert +from asposewordscloud.models.table_row_insert import TableRowInsert +from asposewordscloud.models.watermark_text import WatermarkText +from asposewordscloud.models.xml_color import XmlColor +from asposewordscloud.models.available_fonts_response import AvailableFontsResponse +from asposewordscloud.models.bookmark import Bookmark +from asposewordscloud.models.bookmark_response import BookmarkResponse +from asposewordscloud.models.bookmarks import Bookmarks +from asposewordscloud.models.bookmarks_response import BookmarksResponse +from asposewordscloud.models.border import Border +from asposewordscloud.models.border_response import BorderResponse +from asposewordscloud.models.borders_collection import BordersCollection +from asposewordscloud.models.borders_response import BordersResponse +from asposewordscloud.models.classification_response import ClassificationResponse +from asposewordscloud.models.comment_link import CommentLink +from asposewordscloud.models.comment_response import CommentResponse +from asposewordscloud.models.comments_collection import CommentsCollection +from asposewordscloud.models.comments_response import CommentsResponse +from asposewordscloud.models.doc_save_options_data import DocSaveOptionsData +from asposewordscloud.models.document_properties import DocumentProperties +from asposewordscloud.models.document_properties_response import DocumentPropertiesResponse +from asposewordscloud.models.document_property import DocumentProperty +from asposewordscloud.models.document_property_response import DocumentPropertyResponse +from asposewordscloud.models.document_response import DocumentResponse +from asposewordscloud.models.drawing_object_collection import DrawingObjectCollection +from asposewordscloud.models.drawing_object_response import DrawingObjectResponse +from asposewordscloud.models.drawing_objects_response import DrawingObjectsResponse +from asposewordscloud.models.field_collection import FieldCollection +from asposewordscloud.models.field_names import FieldNames +from asposewordscloud.models.field_names_response import FieldNamesResponse +from asposewordscloud.models.field_response import FieldResponse +from asposewordscloud.models.fields_response import FieldsResponse +from asposewordscloud.models.file_link import FileLink +from asposewordscloud.models.fixed_page_save_options_data import FixedPageSaveOptionsData +from asposewordscloud.models.font import Font +from asposewordscloud.models.font_response import FontResponse +from asposewordscloud.models.footnote_collection import FootnoteCollection +from asposewordscloud.models.footnote_response import FootnoteResponse +from asposewordscloud.models.footnotes_response import FootnotesResponse +from asposewordscloud.models.form_field_collection import FormFieldCollection +from asposewordscloud.models.form_field_response import FormFieldResponse +from asposewordscloud.models.form_fields_response import FormFieldsResponse +from asposewordscloud.models.header_footer_link import HeaderFooterLink +from asposewordscloud.models.header_footer_link_collection import HeaderFooterLinkCollection +from asposewordscloud.models.header_footer_response import HeaderFooterResponse +from asposewordscloud.models.header_footers_response import HeaderFootersResponse +from asposewordscloud.models.html_save_options_data import HtmlSaveOptionsData +from asposewordscloud.models.hyperlink import Hyperlink +from asposewordscloud.models.hyperlink_response import HyperlinkResponse +from asposewordscloud.models.hyperlinks import Hyperlinks +from asposewordscloud.models.hyperlinks_response import HyperlinksResponse +from asposewordscloud.models.node_link import NodeLink +from asposewordscloud.models.odt_save_options_data import OdtSaveOptionsData +from asposewordscloud.models.office_math_object_response import OfficeMathObjectResponse +from asposewordscloud.models.office_math_objects_collection import OfficeMathObjectsCollection +from asposewordscloud.models.office_math_objects_response import OfficeMathObjectsResponse +from asposewordscloud.models.ooxml_save_options_data import OoxmlSaveOptionsData +from asposewordscloud.models.page_setup import PageSetup +from asposewordscloud.models.paragraph_link_collection import ParagraphLinkCollection +from asposewordscloud.models.paragraph_link_collection_response import ParagraphLinkCollectionResponse +from asposewordscloud.models.paragraph_response import ParagraphResponse +from asposewordscloud.models.protection_data_response import ProtectionDataResponse +from asposewordscloud.models.protection_response import ProtectionResponse +from asposewordscloud.models.replace_text_response import ReplaceTextResponse +from asposewordscloud.models.revisions_modification_response import RevisionsModificationResponse +from asposewordscloud.models.rtf_save_options_data import RtfSaveOptionsData +from asposewordscloud.models.run_response import RunResponse +from asposewordscloud.models.runs import Runs +from asposewordscloud.models.runs_response import RunsResponse +from asposewordscloud.models.save_response import SaveResponse +from asposewordscloud.models.search_response import SearchResponse +from asposewordscloud.models.search_results_collection import SearchResultsCollection +from asposewordscloud.models.section import Section +from asposewordscloud.models.section_link import SectionLink +from asposewordscloud.models.section_link_collection import SectionLinkCollection +from asposewordscloud.models.section_link_collection_response import SectionLinkCollectionResponse +from asposewordscloud.models.section_page_setup_response import SectionPageSetupResponse +from asposewordscloud.models.section_response import SectionResponse +from asposewordscloud.models.split_document_response import SplitDocumentResponse +from asposewordscloud.models.stat_data_response import StatDataResponse +from asposewordscloud.models.table_cell_format import TableCellFormat +from asposewordscloud.models.table_cell_format_response import TableCellFormatResponse +from asposewordscloud.models.table_cell_response import TableCellResponse +from asposewordscloud.models.table_link_collection import TableLinkCollection +from asposewordscloud.models.table_link_collection_response import TableLinkCollectionResponse +from asposewordscloud.models.table_properties import TableProperties +from asposewordscloud.models.table_properties_response import TablePropertiesResponse +from asposewordscloud.models.table_response import TableResponse +from asposewordscloud.models.table_row_format import TableRowFormat +from asposewordscloud.models.table_row_format_response import TableRowFormatResponse +from asposewordscloud.models.table_row_response import TableRowResponse +from asposewordscloud.models.text_item import TextItem +from asposewordscloud.models.text_items import TextItems +from asposewordscloud.models.text_items_response import TextItemsResponse +from asposewordscloud.models.text_save_options_data import TextSaveOptionsData +from asposewordscloud.models.word_ml_save_options_data import WordMLSaveOptionsData +from asposewordscloud.models.words_api_error_response import WordsApiErrorResponse +from asposewordscloud.models.words_api_link import WordsApiLink +from asposewordscloud.models.xaml_flow_save_options_data import XamlFlowSaveOptionsData +from asposewordscloud.models.comment import Comment +from asposewordscloud.models.drawing_object_link import DrawingObjectLink +from asposewordscloud.models.epub_save_options_data import EpubSaveOptionsData +from asposewordscloud.models.field_link import FieldLink +from asposewordscloud.models.footnote_link import FootnoteLink +from asposewordscloud.models.form_field import FormField +from asposewordscloud.models.header_footer import HeaderFooter +from asposewordscloud.models.html_fixed_save_options_data import HtmlFixedSaveOptionsData +from asposewordscloud.models.image_save_options_data import ImageSaveOptionsData +from asposewordscloud.models.mhtml_save_options_data import MhtmlSaveOptionsData +from asposewordscloud.models.office_math_link import OfficeMathLink +from asposewordscloud.models.paragraph import Paragraph +from asposewordscloud.models.paragraph_link import ParagraphLink +from asposewordscloud.models.pcl_save_options_data import PclSaveOptionsData +from asposewordscloud.models.pdf_save_options_data import PdfSaveOptionsData +from asposewordscloud.models.ps_save_options_data import PsSaveOptionsData +from asposewordscloud.models.run_link import RunLink +from asposewordscloud.models.svg_save_options_data import SvgSaveOptionsData +from asposewordscloud.models.table import Table +from asposewordscloud.models.table_cell import TableCell +from asposewordscloud.models.table_link import TableLink +from asposewordscloud.models.table_row import TableRow +from asposewordscloud.models.xaml_fixed_save_options_data import XamlFixedSaveOptionsData +from asposewordscloud.models.xps_save_options_data import XpsSaveOptionsData +from asposewordscloud.models.bmp_save_options_data import BmpSaveOptionsData +from asposewordscloud.models.drawing_object import DrawingObject +from asposewordscloud.models.emf_save_options_data import EmfSaveOptionsData +from asposewordscloud.models.field import Field +from asposewordscloud.models.footnote import Footnote +from asposewordscloud.models.form_field_checkbox import FormFieldCheckbox +from asposewordscloud.models.form_field_drop_down import FormFieldDropDown +from asposewordscloud.models.form_field_text_input import FormFieldTextInput +from asposewordscloud.models.gif_save_options_data import GifSaveOptionsData +from asposewordscloud.models.jpeg_save_options_data import JpegSaveOptionsData +from asposewordscloud.models.office_math_object import OfficeMathObject +from asposewordscloud.models.png_save_options_data import PngSaveOptionsData +from asposewordscloud.models.run import Run +from asposewordscloud.models.tiff_save_options_data import TiffSaveOptionsData diff --git a/asposewordscloud/models/aspose_response.py b/asposewordscloud/models/aspose_response.py new file mode 100644 index 00000000..e28e24c0 --- /dev/null +++ b/asposewordscloud/models/aspose_response.py @@ -0,0 +1,150 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class AsposeResponse(object): + """Base class for all responses. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status' + } + + def __init__(self, code=None, status=None): # noqa: E501 + """AsposeResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + + @property + def code(self): + """Gets the code of this AsposeResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this AsposeResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this AsposeResponse. + + Response status code. # noqa: E501 + + :param code: The code of this AsposeResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this AsposeResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this AsposeResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this AsposeResponse. + + Response status. # noqa: E501 + + :param status: The status of this AsposeResponse. # noqa: E501 + :type: str + """ + self._status = status + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AsposeResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/available_fonts_response.py b/asposewordscloud/models/available_fonts_response.py new file mode 100644 index 00000000..a6debf96 --- /dev/null +++ b/asposewordscloud/models/available_fonts_response.py @@ -0,0 +1,228 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class AvailableFontsResponse(object): + """The list of fonts, available for document processing + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'additional_fonts': 'list[FontInfo]', + 'custom_fonts': 'list[FontInfo]', + 'system_fonts': 'list[FontInfo]' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'additional_fonts': 'AdditionalFonts', + 'custom_fonts': 'CustomFonts', + 'system_fonts': 'SystemFonts' + } + + def __init__(self, code=None, status=None, additional_fonts=None, custom_fonts=None, system_fonts=None): # noqa: E501 + """AvailableFontsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._additional_fonts = None + self._custom_fonts = None + self._system_fonts = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if additional_fonts is not None: + self.additional_fonts = additional_fonts + if custom_fonts is not None: + self.custom_fonts = custom_fonts + if system_fonts is not None: + self.system_fonts = system_fonts + + @property + def code(self): + """Gets the code of this AvailableFontsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this AvailableFontsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this AvailableFontsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this AvailableFontsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this AvailableFontsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this AvailableFontsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this AvailableFontsResponse. + + Response status. # noqa: E501 + + :param status: The status of this AvailableFontsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def additional_fonts(self): + """Gets the additional_fonts of this AvailableFontsResponse. # noqa: E501 + + The list of addititional fonts, provided by aspose team # noqa: E501 + + :return: The additional_fonts of this AvailableFontsResponse. # noqa: E501 + :rtype: list[FontInfo] + """ + return self._additional_fonts + + @additional_fonts.setter + def additional_fonts(self, additional_fonts): + """Sets the additional_fonts of this AvailableFontsResponse. + + The list of addititional fonts, provided by aspose team # noqa: E501 + + :param additional_fonts: The additional_fonts of this AvailableFontsResponse. # noqa: E501 + :type: list[FontInfo] + """ + self._additional_fonts = additional_fonts + @property + def custom_fonts(self): + """Gets the custom_fonts of this AvailableFontsResponse. # noqa: E501 + + Custom user fonts (from user file storage). To use them, you should specify \"fontsLocation\" parameter in any request # noqa: E501 + + :return: The custom_fonts of this AvailableFontsResponse. # noqa: E501 + :rtype: list[FontInfo] + """ + return self._custom_fonts + + @custom_fonts.setter + def custom_fonts(self, custom_fonts): + """Sets the custom_fonts of this AvailableFontsResponse. + + Custom user fonts (from user file storage). To use them, you should specify \"fontsLocation\" parameter in any request # noqa: E501 + + :param custom_fonts: The custom_fonts of this AvailableFontsResponse. # noqa: E501 + :type: list[FontInfo] + """ + self._custom_fonts = custom_fonts + @property + def system_fonts(self): + """Gets the system_fonts of this AvailableFontsResponse. # noqa: E501 + + The list of system fonts, availiable on the server # noqa: E501 + + :return: The system_fonts of this AvailableFontsResponse. # noqa: E501 + :rtype: list[FontInfo] + """ + return self._system_fonts + + @system_fonts.setter + def system_fonts(self, system_fonts): + """Sets the system_fonts of this AvailableFontsResponse. + + The list of system fonts, availiable on the server # noqa: E501 + + :param system_fonts: The system_fonts of this AvailableFontsResponse. # noqa: E501 + :type: list[FontInfo] + """ + self._system_fonts = system_fonts + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AvailableFontsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bmp_save_options_data.py b/asposewordscloud/models/bmp_save_options_data.py new file mode 100644 index 00000000..962d5773 --- /dev/null +++ b/asposewordscloud/models/bmp_save_options_data.py @@ -0,0 +1,824 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BmpSaveOptionsData(object): + """Container class for bmp save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None): # noqa: E501 + """BmpSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + + @property + def color_mode(self): + """Gets the color_mode of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this BmpSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this BmpSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this BmpSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this BmpSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this BmpSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this BmpSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this BmpSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this BmpSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this BmpSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this BmpSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this BmpSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this BmpSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this BmpSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this BmpSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this BmpSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this BmpSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this BmpSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this BmpSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this BmpSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this BmpSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this BmpSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this BmpSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this BmpSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this BmpSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this BmpSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this BmpSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this BmpSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this BmpSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this BmpSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this BmpSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this BmpSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this BmpSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this BmpSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this BmpSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this BmpSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this BmpSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this BmpSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this BmpSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this BmpSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this BmpSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this BmpSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this BmpSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this BmpSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this BmpSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this BmpSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this BmpSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this BmpSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this BmpSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this BmpSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this BmpSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this BmpSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this BmpSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this BmpSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this BmpSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this BmpSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this BmpSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this BmpSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this BmpSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this BmpSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this BmpSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this BmpSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this BmpSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this BmpSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this BmpSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this BmpSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this BmpSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this BmpSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this BmpSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this BmpSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this BmpSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this BmpSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this BmpSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this BmpSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this BmpSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BmpSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bookmark.py b/asposewordscloud/models/bookmark.py new file mode 100644 index 00000000..48c501a3 --- /dev/null +++ b/asposewordscloud/models/bookmark.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Bookmark(object): + """Represents a single bookmark. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'name': 'str', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'name': 'Name', + 'text': 'Text' + } + + def __init__(self, link=None, name=None, text=None): # noqa: E501 + """Bookmark - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._name = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if name is not None: + self.name = name + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this Bookmark. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Bookmark. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Bookmark. + + Link to the document. # noqa: E501 + + :param link: The link of this Bookmark. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def name(self): + """Gets the name of this Bookmark. # noqa: E501 + + Gets or sets the name of the bookmark. # noqa: E501 + + :return: The name of this Bookmark. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this Bookmark. + + Gets or sets the name of the bookmark. # noqa: E501 + + :param name: The name of this Bookmark. # noqa: E501 + :type: str + """ + self._name = name + @property + def text(self): + """Gets the text of this Bookmark. # noqa: E501 + + Gets or sets the text enclosed in the bookmark. # noqa: E501 + + :return: The text of this Bookmark. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this Bookmark. + + Gets or sets the text enclosed in the bookmark. # noqa: E501 + + :param text: The text of this Bookmark. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Bookmark): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bookmark_data.py b/asposewordscloud/models/bookmark_data.py new file mode 100644 index 00000000..bb571f26 --- /dev/null +++ b/asposewordscloud/models/bookmark_data.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BookmarkData(object): + """DTO for bookmark updating. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'name': 'str', + 'text': 'str' + } + + attribute_map = { + 'name': 'Name', + 'text': 'Text' + } + + def __init__(self, name=None, text=None): # noqa: E501 + """BookmarkData - a model defined in Swagger""" # noqa: E501 + + self._name = None + self._text = None + self.discriminator = None + + if name is not None: + self.name = name + if text is not None: + self.text = text + + @property + def name(self): + """Gets the name of this BookmarkData. # noqa: E501 + + Gets or sets the name of the bookmark. # noqa: E501 + + :return: The name of this BookmarkData. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this BookmarkData. + + Gets or sets the name of the bookmark. # noqa: E501 + + :param name: The name of this BookmarkData. # noqa: E501 + :type: str + """ + self._name = name + @property + def text(self): + """Gets the text of this BookmarkData. # noqa: E501 + + Gets or sets the text enclosed in the bookmark. # noqa: E501 + + :return: The text of this BookmarkData. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this BookmarkData. + + Gets or sets the text enclosed in the bookmark. # noqa: E501 + + :param text: The text of this BookmarkData. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BookmarkData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bookmark_response.py b/asposewordscloud/models/bookmark_response.py new file mode 100644 index 00000000..7d136b8d --- /dev/null +++ b/asposewordscloud/models/bookmark_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BookmarkResponse(object): + """This response should be returned by the service when handling: GET bookmarks/{bookmarkName}. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'bookmark': 'Bookmark' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'bookmark': 'Bookmark' + } + + def __init__(self, code=None, status=None, bookmark=None): # noqa: E501 + """BookmarkResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._bookmark = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if bookmark is not None: + self.bookmark = bookmark + + @property + def code(self): + """Gets the code of this BookmarkResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this BookmarkResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this BookmarkResponse. + + Response status code. # noqa: E501 + + :param code: The code of this BookmarkResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this BookmarkResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this BookmarkResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this BookmarkResponse. + + Response status. # noqa: E501 + + :param status: The status of this BookmarkResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def bookmark(self): + """Gets the bookmark of this BookmarkResponse. # noqa: E501 + + Bookmark. # noqa: E501 + + :return: The bookmark of this BookmarkResponse. # noqa: E501 + :rtype: Bookmark + """ + return self._bookmark + + @bookmark.setter + def bookmark(self, bookmark): + """Sets the bookmark of this BookmarkResponse. + + Bookmark. # noqa: E501 + + :param bookmark: The bookmark of this BookmarkResponse. # noqa: E501 + :type: Bookmark + """ + self._bookmark = bookmark + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BookmarkResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bookmarks.py b/asposewordscloud/models/bookmarks.py new file mode 100644 index 00000000..a8a5c5a5 --- /dev/null +++ b/asposewordscloud/models/bookmarks.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Bookmarks(object): + """Represents an array of bookmarks. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'bookmark_list': 'list[Bookmark]' + } + + attribute_map = { + 'link': 'link', + 'bookmark_list': 'BookmarkList' + } + + def __init__(self, link=None, bookmark_list=None): # noqa: E501 + """Bookmarks - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._bookmark_list = None + self.discriminator = None + + if link is not None: + self.link = link + if bookmark_list is not None: + self.bookmark_list = bookmark_list + + @property + def link(self): + """Gets the link of this Bookmarks. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Bookmarks. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Bookmarks. + + Link to the document. # noqa: E501 + + :param link: The link of this Bookmarks. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def bookmark_list(self): + """Gets the bookmark_list of this Bookmarks. # noqa: E501 + + Array of bookmarks. # noqa: E501 + + :return: The bookmark_list of this Bookmarks. # noqa: E501 + :rtype: list[Bookmark] + """ + return self._bookmark_list + + @bookmark_list.setter + def bookmark_list(self, bookmark_list): + """Sets the bookmark_list of this Bookmarks. + + Array of bookmarks. # noqa: E501 + + :param bookmark_list: The bookmark_list of this Bookmarks. # noqa: E501 + :type: list[Bookmark] + """ + self._bookmark_list = bookmark_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Bookmarks): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bookmarks_outline_level_data.py b/asposewordscloud/models/bookmarks_outline_level_data.py new file mode 100644 index 00000000..0fb3069a --- /dev/null +++ b/asposewordscloud/models/bookmarks_outline_level_data.py @@ -0,0 +1,150 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BookmarksOutlineLevelData(object): + """container class for individual bookmarks outline level + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'name': 'str', + 'bookmarks_outline_level': 'int' + } + + attribute_map = { + 'name': 'Name', + 'bookmarks_outline_level': 'BookmarksOutlineLevel' + } + + def __init__(self, name=None, bookmarks_outline_level=None): # noqa: E501 + """BookmarksOutlineLevelData - a model defined in Swagger""" # noqa: E501 + + self._name = None + self._bookmarks_outline_level = None + self.discriminator = None + + if name is not None: + self.name = name + if bookmarks_outline_level is not None: + self.bookmarks_outline_level = bookmarks_outline_level + + @property + def name(self): + """Gets the name of this BookmarksOutlineLevelData. # noqa: E501 + + Specify the bookmark's name # noqa: E501 + + :return: The name of this BookmarksOutlineLevelData. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this BookmarksOutlineLevelData. + + Specify the bookmark's name # noqa: E501 + + :param name: The name of this BookmarksOutlineLevelData. # noqa: E501 + :type: str + """ + self._name = name + @property + def bookmarks_outline_level(self): + """Gets the bookmarks_outline_level of this BookmarksOutlineLevelData. # noqa: E501 + + Specify the bookmark's level # noqa: E501 + + :return: The bookmarks_outline_level of this BookmarksOutlineLevelData. # noqa: E501 + :rtype: int + """ + return self._bookmarks_outline_level + + @bookmarks_outline_level.setter + def bookmarks_outline_level(self, bookmarks_outline_level): + """Sets the bookmarks_outline_level of this BookmarksOutlineLevelData. + + Specify the bookmark's level # noqa: E501 + + :param bookmarks_outline_level: The bookmarks_outline_level of this BookmarksOutlineLevelData. # noqa: E501 + :type: int + """ + if bookmarks_outline_level is None: + raise ValueError("Invalid value for `bookmarks_outline_level`, must not be `None`") # noqa: E501 + self._bookmarks_outline_level = bookmarks_outline_level + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BookmarksOutlineLevelData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/bookmarks_response.py b/asposewordscloud/models/bookmarks_response.py new file mode 100644 index 00000000..517c7503 --- /dev/null +++ b/asposewordscloud/models/bookmarks_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BookmarksResponse(object): + """This response should be returned by the service when handling: GET bookmarks. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'bookmarks': 'Bookmarks' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'bookmarks': 'Bookmarks' + } + + def __init__(self, code=None, status=None, bookmarks=None): # noqa: E501 + """BookmarksResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._bookmarks = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if bookmarks is not None: + self.bookmarks = bookmarks + + @property + def code(self): + """Gets the code of this BookmarksResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this BookmarksResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this BookmarksResponse. + + Response status code. # noqa: E501 + + :param code: The code of this BookmarksResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this BookmarksResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this BookmarksResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this BookmarksResponse. + + Response status. # noqa: E501 + + :param status: The status of this BookmarksResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def bookmarks(self): + """Gets the bookmarks of this BookmarksResponse. # noqa: E501 + + Bookmarks which are contained in document. # noqa: E501 + + :return: The bookmarks of this BookmarksResponse. # noqa: E501 + :rtype: Bookmarks + """ + return self._bookmarks + + @bookmarks.setter + def bookmarks(self, bookmarks): + """Sets the bookmarks of this BookmarksResponse. + + Bookmarks which are contained in document. # noqa: E501 + + :param bookmarks: The bookmarks of this BookmarksResponse. # noqa: E501 + :type: Bookmarks + """ + self._bookmarks = bookmarks + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BookmarksResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/border.py b/asposewordscloud/models/border.py new file mode 100644 index 00000000..7718d7ff --- /dev/null +++ b/asposewordscloud/models/border.py @@ -0,0 +1,294 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Border(object): + """Represents a border of an object. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'border_type': 'str', + 'color': 'XmlColor', + 'distance_from_text': 'float', + 'line_style': 'str', + 'line_width': 'float', + 'shadow': 'bool' + } + + attribute_map = { + 'link': 'link', + 'border_type': 'BorderType', + 'color': 'Color', + 'distance_from_text': 'DistanceFromText', + 'line_style': 'LineStyle', + 'line_width': 'LineWidth', + 'shadow': 'Shadow' + } + + def __init__(self, link=None, border_type=None, color=None, distance_from_text=None, line_style=None, line_width=None, shadow=None): # noqa: E501 + """Border - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._border_type = None + self._color = None + self._distance_from_text = None + self._line_style = None + self._line_width = None + self._shadow = None + self.discriminator = None + + if link is not None: + self.link = link + if border_type is not None: + self.border_type = border_type + if color is not None: + self.color = color + if distance_from_text is not None: + self.distance_from_text = distance_from_text + if line_style is not None: + self.line_style = line_style + if line_width is not None: + self.line_width = line_width + if shadow is not None: + self.shadow = shadow + + @property + def link(self): + """Gets the link of this Border. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Border. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Border. + + Link to the document. # noqa: E501 + + :param link: The link of this Border. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def border_type(self): + """Gets the border_type of this Border. # noqa: E501 + + Gets or sets the border type. # noqa: E501 + + :return: The border_type of this Border. # noqa: E501 + :rtype: str + """ + return self._border_type + + @border_type.setter + def border_type(self, border_type): + """Sets the border_type of this Border. + + Gets or sets the border type. # noqa: E501 + + :param border_type: The border_type of this Border. # noqa: E501 + :type: str + """ + allowed_values = ["Bottom", "Left", "Right", "Top", "Horizontal", "Vertical", "DiagonalDown", "DiagonalUp", "None"] # noqa: E501 + if not border_type.isdigit(): + if border_type not in allowed_values: + raise ValueError( + "Invalid value for `border_type` ({0}), must be one of {1}" # noqa: E501 + .format(border_type, allowed_values)) + self._border_type = border_type + else: + self._border_type = allowed_values[int(border_type) if six.PY3 else long(border_type)] + @property + def color(self): + """Gets the color of this Border. # noqa: E501 + + Gets or sets the border color. # noqa: E501 + + :return: The color of this Border. # noqa: E501 + :rtype: XmlColor + """ + return self._color + + @color.setter + def color(self, color): + """Sets the color of this Border. + + Gets or sets the border color. # noqa: E501 + + :param color: The color of this Border. # noqa: E501 + :type: XmlColor + """ + self._color = color + @property + def distance_from_text(self): + """Gets the distance_from_text of this Border. # noqa: E501 + + Gets or sets distance of the border from text or from the page edge in points. # noqa: E501 + + :return: The distance_from_text of this Border. # noqa: E501 + :rtype: float + """ + return self._distance_from_text + + @distance_from_text.setter + def distance_from_text(self, distance_from_text): + """Sets the distance_from_text of this Border. + + Gets or sets distance of the border from text or from the page edge in points. # noqa: E501 + + :param distance_from_text: The distance_from_text of this Border. # noqa: E501 + :type: float + """ + self._distance_from_text = distance_from_text + @property + def line_style(self): + """Gets the line_style of this Border. # noqa: E501 + + Gets or sets the border style. # noqa: E501 + + :return: The line_style of this Border. # noqa: E501 + :rtype: str + """ + return self._line_style + + @line_style.setter + def line_style(self, line_style): + """Sets the line_style of this Border. + + Gets or sets the border style. # noqa: E501 + + :param line_style: The line_style of this Border. # noqa: E501 + :type: str + """ + allowed_values = ["None", "Single", "Thick", "Double", "Hairline", "Dot", "DashLargeGap", "DotDash", "DotDotDash", "Triple", "ThinThickSmallGap", "ThickThinSmallGap", "ThinThickThinSmallGap", "ThinThickMediumGap", "ThickThinMediumGap", "ThinThickThinMediumGap", "ThinThickLargeGap", "ThickThinLargeGap", "ThinThickThinLargeGap", "Wave", "DoubleWave", "DashSmallGap", "DashDotStroker", "Emboss3D", "Engrave3D", "Outset", "Inset"] # noqa: E501 + if not line_style.isdigit(): + if line_style not in allowed_values: + raise ValueError( + "Invalid value for `line_style` ({0}), must be one of {1}" # noqa: E501 + .format(line_style, allowed_values)) + self._line_style = line_style + else: + self._line_style = allowed_values[int(line_style) if six.PY3 else long(line_style)] + @property + def line_width(self): + """Gets the line_width of this Border. # noqa: E501 + + Gets or sets the border width in points. # noqa: E501 + + :return: The line_width of this Border. # noqa: E501 + :rtype: float + """ + return self._line_width + + @line_width.setter + def line_width(self, line_width): + """Sets the line_width of this Border. + + Gets or sets the border width in points. # noqa: E501 + + :param line_width: The line_width of this Border. # noqa: E501 + :type: float + """ + self._line_width = line_width + @property + def shadow(self): + """Gets the shadow of this Border. # noqa: E501 + + Gets or sets a value indicating whether the border has a shadow. # noqa: E501 + + :return: The shadow of this Border. # noqa: E501 + :rtype: bool + """ + return self._shadow + + @shadow.setter + def shadow(self, shadow): + """Sets the shadow of this Border. + + Gets or sets a value indicating whether the border has a shadow. # noqa: E501 + + :param shadow: The shadow of this Border. # noqa: E501 + :type: bool + """ + self._shadow = shadow + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Border): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/border_response.py b/asposewordscloud/models/border_response.py new file mode 100644 index 00000000..15c8183a --- /dev/null +++ b/asposewordscloud/models/border_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BorderResponse(object): + """This response should be returned by the service when handling: GET {nodeWithBorders}/borders. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'border': 'Border' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'border': 'Border' + } + + def __init__(self, code=None, status=None, border=None): # noqa: E501 + """BorderResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._border = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if border is not None: + self.border = border + + @property + def code(self): + """Gets the code of this BorderResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this BorderResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this BorderResponse. + + Response status code. # noqa: E501 + + :param code: The code of this BorderResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this BorderResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this BorderResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this BorderResponse. + + Response status. # noqa: E501 + + :param status: The status of this BorderResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def border(self): + """Gets the border of this BorderResponse. # noqa: E501 + + Table. # noqa: E501 + + :return: The border of this BorderResponse. # noqa: E501 + :rtype: Border + """ + return self._border + + @border.setter + def border(self, border): + """Sets the border of this BorderResponse. + + Table. # noqa: E501 + + :param border: The border of this BorderResponse. # noqa: E501 + :type: Border + """ + self._border = border + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BorderResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/borders_collection.py b/asposewordscloud/models/borders_collection.py new file mode 100644 index 00000000..48640431 --- /dev/null +++ b/asposewordscloud/models/borders_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BordersCollection(object): + """Collection of borders. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[Border]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """BordersCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this BordersCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this BordersCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this BordersCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this BordersCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this BordersCollection. # noqa: E501 + + Collection of comments # noqa: E501 + + :return: The list of this BordersCollection. # noqa: E501 + :rtype: list[Border] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this BordersCollection. + + Collection of comments # noqa: E501 + + :param list: The list of this BordersCollection. # noqa: E501 + :type: list[Border] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BordersCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/borders_response.py b/asposewordscloud/models/borders_response.py new file mode 100644 index 00000000..3ab7c596 --- /dev/null +++ b/asposewordscloud/models/borders_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class BordersResponse(object): + """This response should be returned by the service when handling: GET {nodeWithBorders}/borders. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'borders': 'BordersCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'borders': 'Borders' + } + + def __init__(self, code=None, status=None, borders=None): # noqa: E501 + """BordersResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._borders = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if borders is not None: + self.borders = borders + + @property + def code(self): + """Gets the code of this BordersResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this BordersResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this BordersResponse. + + Response status code. # noqa: E501 + + :param code: The code of this BordersResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this BordersResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this BordersResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this BordersResponse. + + Response status. # noqa: E501 + + :param status: The status of this BordersResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def borders(self): + """Gets the borders of this BordersResponse. # noqa: E501 + + Table. # noqa: E501 + + :return: The borders of this BordersResponse. # noqa: E501 + :rtype: BordersCollection + """ + return self._borders + + @borders.setter + def borders(self, borders): + """Sets the borders of this BordersResponse. + + Table. # noqa: E501 + + :param borders: The borders of this BordersResponse. # noqa: E501 + :type: BordersCollection + """ + self._borders = borders + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, BordersResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/classification_response.py b/asposewordscloud/models/classification_response.py new file mode 100644 index 00000000..8d9a87af --- /dev/null +++ b/asposewordscloud/models/classification_response.py @@ -0,0 +1,228 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ClassificationResponse(object): + """This response should be returned by the service when handling: PUT http://api.aspose.com/v1.1/words/classify + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'best_class_name': 'str', + 'best_class_probability': 'float', + 'best_results': 'list[ClassificationResult]' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'best_class_name': 'BestClassName', + 'best_class_probability': 'BestClassProbability', + 'best_results': 'BestResults' + } + + def __init__(self, code=None, status=None, best_class_name=None, best_class_probability=None, best_results=None): # noqa: E501 + """ClassificationResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._best_class_name = None + self._best_class_probability = None + self._best_results = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if best_class_name is not None: + self.best_class_name = best_class_name + if best_class_probability is not None: + self.best_class_probability = best_class_probability + if best_results is not None: + self.best_results = best_results + + @property + def code(self): + """Gets the code of this ClassificationResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this ClassificationResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this ClassificationResponse. + + Response status code. # noqa: E501 + + :param code: The code of this ClassificationResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this ClassificationResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this ClassificationResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this ClassificationResponse. + + Response status. # noqa: E501 + + :param status: The status of this ClassificationResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def best_class_name(self): + """Gets the best_class_name of this ClassificationResponse. # noqa: E501 + + Best class name. # noqa: E501 + + :return: The best_class_name of this ClassificationResponse. # noqa: E501 + :rtype: str + """ + return self._best_class_name + + @best_class_name.setter + def best_class_name(self, best_class_name): + """Sets the best_class_name of this ClassificationResponse. + + Best class name. # noqa: E501 + + :param best_class_name: The best_class_name of this ClassificationResponse. # noqa: E501 + :type: str + """ + self._best_class_name = best_class_name + @property + def best_class_probability(self): + """Gets the best_class_probability of this ClassificationResponse. # noqa: E501 + + Best class probability. # noqa: E501 + + :return: The best_class_probability of this ClassificationResponse. # noqa: E501 + :rtype: float + """ + return self._best_class_probability + + @best_class_probability.setter + def best_class_probability(self, best_class_probability): + """Sets the best_class_probability of this ClassificationResponse. + + Best class probability. # noqa: E501 + + :param best_class_probability: The best_class_probability of this ClassificationResponse. # noqa: E501 + :type: float + """ + self._best_class_probability = best_class_probability + @property + def best_results(self): + """Gets the best_results of this ClassificationResponse. # noqa: E501 + + Array of best classes results. # noqa: E501 + + :return: The best_results of this ClassificationResponse. # noqa: E501 + :rtype: list[ClassificationResult] + """ + return self._best_results + + @best_results.setter + def best_results(self, best_results): + """Sets the best_results of this ClassificationResponse. + + Array of best classes results. # noqa: E501 + + :param best_results: The best_results of this ClassificationResponse. # noqa: E501 + :type: list[ClassificationResult] + """ + self._best_results = best_results + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ClassificationResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/classification_result.py b/asposewordscloud/models/classification_result.py new file mode 100644 index 00000000..84672e1e --- /dev/null +++ b/asposewordscloud/models/classification_result.py @@ -0,0 +1,150 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ClassificationResult(object): + """Represents a single classification result. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'class_name': 'str', + 'class_probability': 'float' + } + + attribute_map = { + 'class_name': 'ClassName', + 'class_probability': 'ClassProbability' + } + + def __init__(self, class_name=None, class_probability=None): # noqa: E501 + """ClassificationResult - a model defined in Swagger""" # noqa: E501 + + self._class_name = None + self._class_probability = None + self.discriminator = None + + if class_name is not None: + self.class_name = class_name + if class_probability is not None: + self.class_probability = class_probability + + @property + def class_name(self): + """Gets the class_name of this ClassificationResult. # noqa: E501 + + Gets or sets the name of the class. # noqa: E501 + + :return: The class_name of this ClassificationResult. # noqa: E501 + :rtype: str + """ + return self._class_name + + @class_name.setter + def class_name(self, class_name): + """Sets the class_name of this ClassificationResult. + + Gets or sets the name of the class. # noqa: E501 + + :param class_name: The class_name of this ClassificationResult. # noqa: E501 + :type: str + """ + self._class_name = class_name + @property + def class_probability(self): + """Gets the class_probability of this ClassificationResult. # noqa: E501 + + Gets or sets the probability of class. # noqa: E501 + + :return: The class_probability of this ClassificationResult. # noqa: E501 + :rtype: float + """ + return self._class_probability + + @class_probability.setter + def class_probability(self, class_probability): + """Sets the class_probability of this ClassificationResult. + + Gets or sets the probability of class. # noqa: E501 + + :param class_probability: The class_probability of this ClassificationResult. # noqa: E501 + :type: float + """ + if class_probability is None: + raise ValueError("Invalid value for `class_probability`, must not be `None`") # noqa: E501 + self._class_probability = class_probability + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ClassificationResult): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/comment.py b/asposewordscloud/models/comment.py new file mode 100644 index 00000000..82dbae80 --- /dev/null +++ b/asposewordscloud/models/comment.py @@ -0,0 +1,304 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Comment(object): + """Comment. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'author': 'str', + 'content': 'StoryChildNodes', + 'date_time': 'datetime', + 'initial': 'str', + 'range_end': 'DocumentPosition', + 'range_start': 'DocumentPosition', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'author': 'Author', + 'content': 'Content', + 'date_time': 'DateTime', + 'initial': 'Initial', + 'range_end': 'RangeEnd', + 'range_start': 'RangeStart', + 'text': 'Text' + } + + def __init__(self, link=None, author=None, content=None, date_time=None, initial=None, range_end=None, range_start=None, text=None): # noqa: E501 + """Comment - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._author = None + self._content = None + self._date_time = None + self._initial = None + self._range_end = None + self._range_start = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if author is not None: + self.author = author + if content is not None: + self.content = content + if date_time is not None: + self.date_time = date_time + if initial is not None: + self.initial = initial + if range_end is not None: + self.range_end = range_end + if range_start is not None: + self.range_start = range_start + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this Comment. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Comment. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Comment. + + Link to the document. # noqa: E501 + + :param link: The link of this Comment. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def author(self): + """Gets the author of this Comment. # noqa: E501 + + Returns or sets the author name for a comment. # noqa: E501 + + :return: The author of this Comment. # noqa: E501 + :rtype: str + """ + return self._author + + @author.setter + def author(self, author): + """Sets the author of this Comment. + + Returns or sets the author name for a comment. # noqa: E501 + + :param author: The author of this Comment. # noqa: E501 + :type: str + """ + self._author = author + @property + def content(self): + """Gets the content of this Comment. # noqa: E501 + + Content of comment # noqa: E501 + + :return: The content of this Comment. # noqa: E501 + :rtype: StoryChildNodes + """ + return self._content + + @content.setter + def content(self, content): + """Sets the content of this Comment. + + Content of comment # noqa: E501 + + :param content: The content of this Comment. # noqa: E501 + :type: StoryChildNodes + """ + self._content = content + @property + def date_time(self): + """Gets the date_time of this Comment. # noqa: E501 + + Gets the date and time that the comment was made. # noqa: E501 + + :return: The date_time of this Comment. # noqa: E501 + :rtype: datetime + """ + return self._date_time + + @date_time.setter + def date_time(self, date_time): + """Sets the date_time of this Comment. + + Gets the date and time that the comment was made. # noqa: E501 + + :param date_time: The date_time of this Comment. # noqa: E501 + :type: datetime + """ + self._date_time = date_time + @property + def initial(self): + """Gets the initial of this Comment. # noqa: E501 + + Returns or sets the initials of the user associated with a specific comment. # noqa: E501 + + :return: The initial of this Comment. # noqa: E501 + :rtype: str + """ + return self._initial + + @initial.setter + def initial(self, initial): + """Sets the initial of this Comment. + + Returns or sets the initials of the user associated with a specific comment. # noqa: E501 + + :param initial: The initial of this Comment. # noqa: E501 + :type: str + """ + self._initial = initial + @property + def range_end(self): + """Gets the range_end of this Comment. # noqa: E501 + + Link to comment range end node. # noqa: E501 + + :return: The range_end of this Comment. # noqa: E501 + :rtype: DocumentPosition + """ + return self._range_end + + @range_end.setter + def range_end(self, range_end): + """Sets the range_end of this Comment. + + Link to comment range end node. # noqa: E501 + + :param range_end: The range_end of this Comment. # noqa: E501 + :type: DocumentPosition + """ + self._range_end = range_end + @property + def range_start(self): + """Gets the range_start of this Comment. # noqa: E501 + + Link to comment range start node. # noqa: E501 + + :return: The range_start of this Comment. # noqa: E501 + :rtype: DocumentPosition + """ + return self._range_start + + @range_start.setter + def range_start(self, range_start): + """Sets the range_start of this Comment. + + Link to comment range start node. # noqa: E501 + + :param range_start: The range_start of this Comment. # noqa: E501 + :type: DocumentPosition + """ + self._range_start = range_start + @property + def text(self): + """Gets the text of this Comment. # noqa: E501 + + This is a convenience property that allows to easily get or set text of the comment. # noqa: E501 + + :return: The text of this Comment. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this Comment. + + This is a convenience property that allows to easily get or set text of the comment. # noqa: E501 + + :param text: The text of this Comment. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Comment): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/comment_link.py b/asposewordscloud/models/comment_link.py new file mode 100644 index 00000000..fa62451f --- /dev/null +++ b/asposewordscloud/models/comment_link.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class CommentLink(object): + """Comment link. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink' + } + + attribute_map = { + 'link': 'link' + } + + def __init__(self, link=None): # noqa: E501 + """CommentLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self.discriminator = None + + if link is not None: + self.link = link + + @property + def link(self): + """Gets the link of this CommentLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this CommentLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this CommentLink. + + Link to the document. # noqa: E501 + + :param link: The link of this CommentLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, CommentLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/comment_response.py b/asposewordscloud/models/comment_response.py new file mode 100644 index 00000000..80dda63b --- /dev/null +++ b/asposewordscloud/models/comment_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class CommentResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/comments/0 + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'comment': 'Comment' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'comment': 'Comment' + } + + def __init__(self, code=None, status=None, comment=None): # noqa: E501 + """CommentResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._comment = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if comment is not None: + self.comment = comment + + @property + def code(self): + """Gets the code of this CommentResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this CommentResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this CommentResponse. + + Response status code. # noqa: E501 + + :param code: The code of this CommentResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this CommentResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this CommentResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this CommentResponse. + + Response status. # noqa: E501 + + :param status: The status of this CommentResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def comment(self): + """Gets the comment of this CommentResponse. # noqa: E501 + + Comment information # noqa: E501 + + :return: The comment of this CommentResponse. # noqa: E501 + :rtype: Comment + """ + return self._comment + + @comment.setter + def comment(self, comment): + """Sets the comment of this CommentResponse. + + Comment information # noqa: E501 + + :param comment: The comment of this CommentResponse. # noqa: E501 + :type: Comment + """ + self._comment = comment + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, CommentResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/comments_collection.py b/asposewordscloud/models/comments_collection.py new file mode 100644 index 00000000..6bffa0fe --- /dev/null +++ b/asposewordscloud/models/comments_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class CommentsCollection(object): + """Collection of comments. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'comment_list': 'list[Comment]' + } + + attribute_map = { + 'link': 'link', + 'comment_list': 'CommentList' + } + + def __init__(self, link=None, comment_list=None): # noqa: E501 + """CommentsCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._comment_list = None + self.discriminator = None + + if link is not None: + self.link = link + if comment_list is not None: + self.comment_list = comment_list + + @property + def link(self): + """Gets the link of this CommentsCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this CommentsCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this CommentsCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this CommentsCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def comment_list(self): + """Gets the comment_list of this CommentsCollection. # noqa: E501 + + Collection of comments # noqa: E501 + + :return: The comment_list of this CommentsCollection. # noqa: E501 + :rtype: list[Comment] + """ + return self._comment_list + + @comment_list.setter + def comment_list(self, comment_list): + """Sets the comment_list of this CommentsCollection. + + Collection of comments # noqa: E501 + + :param comment_list: The comment_list of this CommentsCollection. # noqa: E501 + :type: list[Comment] + """ + self._comment_list = comment_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, CommentsCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/comments_response.py b/asposewordscloud/models/comments_response.py new file mode 100644 index 00000000..98513eb6 --- /dev/null +++ b/asposewordscloud/models/comments_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class CommentsResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/comments + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'comments': 'CommentsCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'comments': 'Comments' + } + + def __init__(self, code=None, status=None, comments=None): # noqa: E501 + """CommentsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._comments = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if comments is not None: + self.comments = comments + + @property + def code(self): + """Gets the code of this CommentsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this CommentsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this CommentsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this CommentsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this CommentsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this CommentsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this CommentsResponse. + + Response status. # noqa: E501 + + :param status: The status of this CommentsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def comments(self): + """Gets the comments of this CommentsResponse. # noqa: E501 + + Collection of comments. # noqa: E501 + + :return: The comments of this CommentsResponse. # noqa: E501 + :rtype: CommentsCollection + """ + return self._comments + + @comments.setter + def comments(self, comments): + """Sets the comments of this CommentsResponse. + + Collection of comments. # noqa: E501 + + :param comments: The comments of this CommentsResponse. # noqa: E501 + :type: CommentsCollection + """ + self._comments = comments + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, CommentsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/compare_data.py b/asposewordscloud/models/compare_data.py new file mode 100644 index 00000000..cebb1947 --- /dev/null +++ b/asposewordscloud/models/compare_data.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class CompareData(object): + """Container class for compare documents + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'comparing_with_document': 'str', + 'author': 'str', + 'date_time': 'datetime' + } + + attribute_map = { + 'comparing_with_document': 'ComparingWithDocument', + 'author': 'Author', + 'date_time': 'DateTime' + } + + def __init__(self, comparing_with_document=None, author=None, date_time=None): # noqa: E501 + """CompareData - a model defined in Swagger""" # noqa: E501 + + self._comparing_with_document = None + self._author = None + self._date_time = None + self.discriminator = None + + if comparing_with_document is not None: + self.comparing_with_document = comparing_with_document + if author is not None: + self.author = author + if date_time is not None: + self.date_time = date_time + + @property + def comparing_with_document(self): + """Gets the comparing_with_document of this CompareData. # noqa: E501 + + Path to document to compare at the server. # noqa: E501 + + :return: The comparing_with_document of this CompareData. # noqa: E501 + :rtype: str + """ + return self._comparing_with_document + + @comparing_with_document.setter + def comparing_with_document(self, comparing_with_document): + """Sets the comparing_with_document of this CompareData. + + Path to document to compare at the server. # noqa: E501 + + :param comparing_with_document: The comparing_with_document of this CompareData. # noqa: E501 + :type: str + """ + self._comparing_with_document = comparing_with_document + @property + def author(self): + """Gets the author of this CompareData. # noqa: E501 + + Initials of the author to use for revisions. # noqa: E501 + + :return: The author of this CompareData. # noqa: E501 + :rtype: str + """ + return self._author + + @author.setter + def author(self, author): + """Sets the author of this CompareData. + + Initials of the author to use for revisions. # noqa: E501 + + :param author: The author of this CompareData. # noqa: E501 + :type: str + """ + self._author = author + @property + def date_time(self): + """Gets the date_time of this CompareData. # noqa: E501 + + The date and time to use for revisions. # noqa: E501 + + :return: The date_time of this CompareData. # noqa: E501 + :rtype: datetime + """ + return self._date_time + + @date_time.setter + def date_time(self, date_time): + """Sets the date_time of this CompareData. + + The date and time to use for revisions. # noqa: E501 + + :param date_time: The date_time of this CompareData. # noqa: E501 + :type: datetime + """ + self._date_time = date_time + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, CompareData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/doc_save_options_data.py b/asposewordscloud/models/doc_save_options_data.py new file mode 100644 index 00000000..eb696d22 --- /dev/null +++ b/asposewordscloud/models/doc_save_options_data.py @@ -0,0 +1,382 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocSaveOptionsData(object): + """container class for doc/dot save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'password': 'str', + 'save_routing_slip': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'password': 'Password', + 'save_routing_slip': 'SaveRoutingSlip' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, password=None, save_routing_slip=None): # noqa: E501 + """DocSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._password = None + self._save_routing_slip = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if password is not None: + self.password = password + if save_routing_slip is not None: + self.save_routing_slip = save_routing_slip + + @property + def color_mode(self): + """Gets the color_mode of this DocSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this DocSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this DocSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this DocSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this DocSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this DocSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this DocSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this DocSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this DocSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this DocSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this DocSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this DocSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this DocSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this DocSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this DocSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this DocSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this DocSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this DocSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this DocSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this DocSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this DocSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this DocSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this DocSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this DocSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this DocSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this DocSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this DocSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this DocSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this DocSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this DocSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this DocSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this DocSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this DocSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this DocSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this DocSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this DocSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def password(self): + """Gets the password of this DocSaveOptionsData. # noqa: E501 + + Password # noqa: E501 + + :return: The password of this DocSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._password + + @password.setter + def password(self, password): + """Sets the password of this DocSaveOptionsData. + + Password # noqa: E501 + + :param password: The password of this DocSaveOptionsData. # noqa: E501 + :type: str + """ + self._password = password + @property + def save_routing_slip(self): + """Gets the save_routing_slip of this DocSaveOptionsData. # noqa: E501 + + Determine whether or not save RoutingSlip data saved to output document # noqa: E501 + + :return: The save_routing_slip of this DocSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._save_routing_slip + + @save_routing_slip.setter + def save_routing_slip(self, save_routing_slip): + """Sets the save_routing_slip of this DocSaveOptionsData. + + Determine whether or not save RoutingSlip data saved to output document # noqa: E501 + + :param save_routing_slip: The save_routing_slip of this DocSaveOptionsData. # noqa: E501 + :type: bool + """ + self._save_routing_slip = save_routing_slip + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document.py b/asposewordscloud/models/document.py new file mode 100644 index 00000000..cc17ed89 --- /dev/null +++ b/asposewordscloud/models/document.py @@ -0,0 +1,266 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Document(object): + """Represents Words document DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'links': 'list[Link]', + 'file_name': 'str', + 'source_format': 'str', + 'is_encrypted': 'bool', + 'is_signed': 'bool', + 'document_properties': 'DocumentProperties' + } + + attribute_map = { + 'links': 'Links', + 'file_name': 'FileName', + 'source_format': 'SourceFormat', + 'is_encrypted': 'IsEncrypted', + 'is_signed': 'IsSigned', + 'document_properties': 'DocumentProperties' + } + + def __init__(self, links=None, file_name=None, source_format=None, is_encrypted=None, is_signed=None, document_properties=None): # noqa: E501 + """Document - a model defined in Swagger""" # noqa: E501 + + self._links = None + self._file_name = None + self._source_format = None + self._is_encrypted = None + self._is_signed = None + self._document_properties = None + self.discriminator = None + + if links is not None: + self.links = links + if file_name is not None: + self.file_name = file_name + if source_format is not None: + self.source_format = source_format + if is_encrypted is not None: + self.is_encrypted = is_encrypted + if is_signed is not None: + self.is_signed = is_signed + if document_properties is not None: + self.document_properties = document_properties + + @property + def links(self): + """Gets the links of this Document. # noqa: E501 + + A list of links that originate from this document. # noqa: E501 + + :return: The links of this Document. # noqa: E501 + :rtype: list[Link] + """ + return self._links + + @links.setter + def links(self, links): + """Sets the links of this Document. + + A list of links that originate from this document. # noqa: E501 + + :param links: The links of this Document. # noqa: E501 + :type: list[Link] + """ + self._links = links + @property + def file_name(self): + """Gets the file_name of this Document. # noqa: E501 + + Gets the name of the file. # noqa: E501 + + :return: The file_name of this Document. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this Document. + + Gets the name of the file. # noqa: E501 + + :param file_name: The file_name of this Document. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def source_format(self): + """Gets the source_format of this Document. # noqa: E501 + + Gets the original format of the document. # noqa: E501 + + :return: The source_format of this Document. # noqa: E501 + :rtype: str + """ + return self._source_format + + @source_format.setter + def source_format(self, source_format): + """Sets the source_format of this Document. + + Gets the original format of the document. # noqa: E501 + + :param source_format: The source_format of this Document. # noqa: E501 + :type: str + """ + if source_format is None: + raise ValueError("Invalid value for `source_format`, must not be `None`") # noqa: E501 + allowed_values = ["Unknown", "Doc", "Dot", "DocPreWord60", "Docx", "Docm", "Dotx", "Dotm", "FlatOpc", "Rtf", "WordML", "Html", "Mhtml", "Epub", "Text", "Odt", "Ott", "Pdf", "Xps", "Tiff", "Svg"] # noqa: E501 + if not source_format.isdigit(): + if source_format not in allowed_values: + raise ValueError( + "Invalid value for `source_format` ({0}), must be one of {1}" # noqa: E501 + .format(source_format, allowed_values)) + self._source_format = source_format + else: + self._source_format = allowed_values[int(source_format) if six.PY3 else long(source_format)] + @property + def is_encrypted(self): + """Gets the is_encrypted of this Document. # noqa: E501 + + Returns true if the document is encrypted and requires a password to open. # noqa: E501 + + :return: The is_encrypted of this Document. # noqa: E501 + :rtype: bool + """ + return self._is_encrypted + + @is_encrypted.setter + def is_encrypted(self, is_encrypted): + """Sets the is_encrypted of this Document. + + Returns true if the document is encrypted and requires a password to open. # noqa: E501 + + :param is_encrypted: The is_encrypted of this Document. # noqa: E501 + :type: bool + """ + if is_encrypted is None: + raise ValueError("Invalid value for `is_encrypted`, must not be `None`") # noqa: E501 + self._is_encrypted = is_encrypted + @property + def is_signed(self): + """Gets the is_signed of this Document. # noqa: E501 + + Returns true if the document contains a digital signature. This property merely informs that a digital signature is present on a document, but it does not specify whether the signature is valid or not. # noqa: E501 + + :return: The is_signed of this Document. # noqa: E501 + :rtype: bool + """ + return self._is_signed + + @is_signed.setter + def is_signed(self, is_signed): + """Sets the is_signed of this Document. + + Returns true if the document contains a digital signature. This property merely informs that a digital signature is present on a document, but it does not specify whether the signature is valid or not. # noqa: E501 + + :param is_signed: The is_signed of this Document. # noqa: E501 + :type: bool + """ + if is_signed is None: + raise ValueError("Invalid value for `is_signed`, must not be `None`") # noqa: E501 + self._is_signed = is_signed + @property + def document_properties(self): + """Gets the document_properties of this Document. # noqa: E501 + + Returns document properties. # noqa: E501 + + :return: The document_properties of this Document. # noqa: E501 + :rtype: DocumentProperties + """ + return self._document_properties + + @document_properties.setter + def document_properties(self, document_properties): + """Sets the document_properties of this Document. + + Returns document properties. # noqa: E501 + + :param document_properties: The document_properties of this Document. # noqa: E501 + :type: DocumentProperties + """ + self._document_properties = document_properties + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Document): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_entry.py b/asposewordscloud/models/document_entry.py new file mode 100644 index 00000000..988d39df --- /dev/null +++ b/asposewordscloud/models/document_entry.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentEntry(object): + """Represents a document which will be appended to the original resource document. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'href': 'str', + 'import_format_mode': 'str' + } + + attribute_map = { + 'href': 'Href', + 'import_format_mode': 'ImportFormatMode' + } + + def __init__(self, href=None, import_format_mode=None): # noqa: E501 + """DocumentEntry - a model defined in Swagger""" # noqa: E501 + + self._href = None + self._import_format_mode = None + self.discriminator = None + + if href is not None: + self.href = href + if import_format_mode is not None: + self.import_format_mode = import_format_mode + + @property + def href(self): + """Gets the href of this DocumentEntry. # noqa: E501 + + Path to document to append at the server. # noqa: E501 + + :return: The href of this DocumentEntry. # noqa: E501 + :rtype: str + """ + return self._href + + @href.setter + def href(self, href): + """Sets the href of this DocumentEntry. + + Path to document to append at the server. # noqa: E501 + + :param href: The href of this DocumentEntry. # noqa: E501 + :type: str + """ + self._href = href + @property + def import_format_mode(self): + """Gets the import_format_mode of this DocumentEntry. # noqa: E501 + + Defines which formatting will be used: appended or destination document.Can be KeepSourceFormatting or UseDestinationStyles. # noqa: E501 + + :return: The import_format_mode of this DocumentEntry. # noqa: E501 + :rtype: str + """ + return self._import_format_mode + + @import_format_mode.setter + def import_format_mode(self, import_format_mode): + """Sets the import_format_mode of this DocumentEntry. + + Defines which formatting will be used: appended or destination document.Can be KeepSourceFormatting or UseDestinationStyles. # noqa: E501 + + :param import_format_mode: The import_format_mode of this DocumentEntry. # noqa: E501 + :type: str + """ + self._import_format_mode = import_format_mode + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentEntry): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_entry_list.py b/asposewordscloud/models/document_entry_list.py new file mode 100644 index 00000000..bb2ec17d --- /dev/null +++ b/asposewordscloud/models/document_entry_list.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentEntryList(object): + """Represents a list of documents which will be appended to the original resource document. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'document_entries': 'list[DocumentEntry]' + } + + attribute_map = { + 'document_entries': 'DocumentEntries' + } + + def __init__(self, document_entries=None): # noqa: E501 + """DocumentEntryList - a model defined in Swagger""" # noqa: E501 + + self._document_entries = None + self.discriminator = None + + if document_entries is not None: + self.document_entries = document_entries + + @property + def document_entries(self): + """Gets the document_entries of this DocumentEntryList. # noqa: E501 + + List of documents. # noqa: E501 + + :return: The document_entries of this DocumentEntryList. # noqa: E501 + :rtype: list[DocumentEntry] + """ + return self._document_entries + + @document_entries.setter + def document_entries(self, document_entries): + """Sets the document_entries of this DocumentEntryList. + + List of documents. # noqa: E501 + + :param document_entries: The document_entries of this DocumentEntryList. # noqa: E501 + :type: list[DocumentEntry] + """ + self._document_entries = document_entries + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentEntryList): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_position.py b/asposewordscloud/models/document_position.py new file mode 100644 index 00000000..2218eaf1 --- /dev/null +++ b/asposewordscloud/models/document_position.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentPosition(object): + """Represents a position in the document tree. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'node': 'NodeLink', + 'offset': 'int' + } + + attribute_map = { + 'node': 'Node', + 'offset': 'Offset' + } + + def __init__(self, node=None, offset=None): # noqa: E501 + """DocumentPosition - a model defined in Swagger""" # noqa: E501 + + self._node = None + self._offset = None + self.discriminator = None + + if node is not None: + self.node = node + if offset is not None: + self.offset = offset + + @property + def node(self): + """Gets the node of this DocumentPosition. # noqa: E501 + + Link to node. # noqa: E501 + + :return: The node of this DocumentPosition. # noqa: E501 + :rtype: NodeLink + """ + return self._node + + @node.setter + def node(self, node): + """Sets the node of this DocumentPosition. + + Link to node. # noqa: E501 + + :param node: The node of this DocumentPosition. # noqa: E501 + :type: NodeLink + """ + self._node = node + @property + def offset(self): + """Gets the offset of this DocumentPosition. # noqa: E501 + + Offset into the node. # noqa: E501 + + :return: The offset of this DocumentPosition. # noqa: E501 + :rtype: int + """ + return self._offset + + @offset.setter + def offset(self, offset): + """Sets the offset of this DocumentPosition. + + Offset into the node. # noqa: E501 + + :param offset: The offset of this DocumentPosition. # noqa: E501 + :type: int + """ + self._offset = offset + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentPosition): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_properties.py b/asposewordscloud/models/document_properties.py new file mode 100644 index 00000000..0b9a9c14 --- /dev/null +++ b/asposewordscloud/models/document_properties.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentProperties(object): + """Collection of document properties. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[DocumentProperty]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """DocumentProperties - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this DocumentProperties. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this DocumentProperties. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this DocumentProperties. + + Link to the document. # noqa: E501 + + :param link: The link of this DocumentProperties. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this DocumentProperties. # noqa: E501 + + Collection of document properties. # noqa: E501 + + :return: The list of this DocumentProperties. # noqa: E501 + :rtype: list[DocumentProperty] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this DocumentProperties. + + Collection of document properties. # noqa: E501 + + :param list: The list of this DocumentProperties. # noqa: E501 + :type: list[DocumentProperty] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentProperties): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_properties_response.py b/asposewordscloud/models/document_properties_response.py new file mode 100644 index 00000000..cd2e7abd --- /dev/null +++ b/asposewordscloud/models/document_properties_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentPropertiesResponse(object): + """This response should be returned by the service when handling: GET /documentProperties. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document_properties': 'DocumentProperties' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document_properties': 'DocumentProperties' + } + + def __init__(self, code=None, status=None, document_properties=None): # noqa: E501 + """DocumentPropertiesResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document_properties = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document_properties is not None: + self.document_properties = document_properties + + @property + def code(self): + """Gets the code of this DocumentPropertiesResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this DocumentPropertiesResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this DocumentPropertiesResponse. + + Response status code. # noqa: E501 + + :param code: The code of this DocumentPropertiesResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this DocumentPropertiesResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this DocumentPropertiesResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this DocumentPropertiesResponse. + + Response status. # noqa: E501 + + :param status: The status of this DocumentPropertiesResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document_properties(self): + """Gets the document_properties of this DocumentPropertiesResponse. # noqa: E501 + + Collection of document properties. # noqa: E501 + + :return: The document_properties of this DocumentPropertiesResponse. # noqa: E501 + :rtype: DocumentProperties + """ + return self._document_properties + + @document_properties.setter + def document_properties(self, document_properties): + """Sets the document_properties of this DocumentPropertiesResponse. + + Collection of document properties. # noqa: E501 + + :param document_properties: The document_properties of this DocumentPropertiesResponse. # noqa: E501 + :type: DocumentProperties + """ + self._document_properties = document_properties + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentPropertiesResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_property.py b/asposewordscloud/models/document_property.py new file mode 100644 index 00000000..23412589 --- /dev/null +++ b/asposewordscloud/models/document_property.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentProperty(object): + """Words document property DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'built_in': 'bool', + 'name': 'str', + 'value': 'str' + } + + attribute_map = { + 'link': 'link', + 'built_in': 'BuiltIn', + 'name': 'Name', + 'value': 'Value' + } + + def __init__(self, link=None, built_in=None, name=None, value=None): # noqa: E501 + """DocumentProperty - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._built_in = None + self._name = None + self._value = None + self.discriminator = None + + if link is not None: + self.link = link + if built_in is not None: + self.built_in = built_in + if name is not None: + self.name = name + if value is not None: + self.value = value + + @property + def link(self): + """Gets the link of this DocumentProperty. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this DocumentProperty. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this DocumentProperty. + + Link to the document. # noqa: E501 + + :param link: The link of this DocumentProperty. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def built_in(self): + """Gets the built_in of this DocumentProperty. # noqa: E501 + + Flag indicates whether the property is built-in or not. If true the property is built-in, if false the property is custom. # noqa: E501 + + :return: The built_in of this DocumentProperty. # noqa: E501 + :rtype: bool + """ + return self._built_in + + @built_in.setter + def built_in(self, built_in): + """Sets the built_in of this DocumentProperty. + + Flag indicates whether the property is built-in or not. If true the property is built-in, if false the property is custom. # noqa: E501 + + :param built_in: The built_in of this DocumentProperty. # noqa: E501 + :type: bool + """ + self._built_in = built_in + @property + def name(self): + """Gets the name of this DocumentProperty. # noqa: E501 + + Name of the document property. # noqa: E501 + + :return: The name of this DocumentProperty. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this DocumentProperty. + + Name of the document property. # noqa: E501 + + :param name: The name of this DocumentProperty. # noqa: E501 + :type: str + """ + self._name = name + @property + def value(self): + """Gets the value of this DocumentProperty. # noqa: E501 + + string value of the document property. # noqa: E501 + + :return: The value of this DocumentProperty. # noqa: E501 + :rtype: str + """ + return self._value + + @value.setter + def value(self, value): + """Sets the value of this DocumentProperty. + + string value of the document property. # noqa: E501 + + :param value: The value of this DocumentProperty. # noqa: E501 + :type: str + """ + self._value = value + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentProperty): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_property_response.py b/asposewordscloud/models/document_property_response.py new file mode 100644 index 00000000..3fc267c1 --- /dev/null +++ b/asposewordscloud/models/document_property_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentPropertyResponse(object): + """This response should be returned by the service when handling: GET documentProperties/{propertyName}. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document_property': 'DocumentProperty' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document_property': 'DocumentProperty' + } + + def __init__(self, code=None, status=None, document_property=None): # noqa: E501 + """DocumentPropertyResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document_property = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document_property is not None: + self.document_property = document_property + + @property + def code(self): + """Gets the code of this DocumentPropertyResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this DocumentPropertyResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this DocumentPropertyResponse. + + Response status code. # noqa: E501 + + :param code: The code of this DocumentPropertyResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this DocumentPropertyResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this DocumentPropertyResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this DocumentPropertyResponse. + + Response status. # noqa: E501 + + :param status: The status of this DocumentPropertyResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document_property(self): + """Gets the document_property of this DocumentPropertyResponse. # noqa: E501 + + Document property. # noqa: E501 + + :return: The document_property of this DocumentPropertyResponse. # noqa: E501 + :rtype: DocumentProperty + """ + return self._document_property + + @document_property.setter + def document_property(self, document_property): + """Sets the document_property of this DocumentPropertyResponse. + + Document property. # noqa: E501 + + :param document_property: The document_property of this DocumentPropertyResponse. # noqa: E501 + :type: DocumentProperty + """ + self._document_property = document_property + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentPropertyResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_response.py b/asposewordscloud/models/document_response.py new file mode 100644 index 00000000..589e1f06 --- /dev/null +++ b/asposewordscloud/models/document_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentResponse(object): + """Represents the response with document description. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document': 'Document' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document': 'Document' + } + + def __init__(self, code=None, status=None, document=None): # noqa: E501 + """DocumentResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document is not None: + self.document = document + + @property + def code(self): + """Gets the code of this DocumentResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this DocumentResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this DocumentResponse. + + Response status code. # noqa: E501 + + :param code: The code of this DocumentResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this DocumentResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this DocumentResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this DocumentResponse. + + Response status. # noqa: E501 + + :param status: The status of this DocumentResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document(self): + """Gets the document of this DocumentResponse. # noqa: E501 + + Document description. # noqa: E501 + + :return: The document of this DocumentResponse. # noqa: E501 + :rtype: Document + """ + return self._document + + @document.setter + def document(self, document): + """Sets the document of this DocumentResponse. + + Document description. # noqa: E501 + + :param document: The document of this DocumentResponse. # noqa: E501 + :type: Document + """ + self._document = document + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/document_stat_data.py b/asposewordscloud/models/document_stat_data.py new file mode 100644 index 00000000..3a15cc80 --- /dev/null +++ b/asposewordscloud/models/document_stat_data.py @@ -0,0 +1,232 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DocumentStatData(object): + """Container for the document's statistical data + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'word_count': 'int', + 'paragraph_count': 'int', + 'page_count': 'int', + 'footnotes_stat_data': 'FootnotesStatData', + 'page_stat_data': 'list[PageStatData]' + } + + attribute_map = { + 'word_count': 'WordCount', + 'paragraph_count': 'ParagraphCount', + 'page_count': 'PageCount', + 'footnotes_stat_data': 'FootnotesStatData', + 'page_stat_data': 'PageStatData' + } + + def __init__(self, word_count=None, paragraph_count=None, page_count=None, footnotes_stat_data=None, page_stat_data=None): # noqa: E501 + """DocumentStatData - a model defined in Swagger""" # noqa: E501 + + self._word_count = None + self._paragraph_count = None + self._page_count = None + self._footnotes_stat_data = None + self._page_stat_data = None + self.discriminator = None + + if word_count is not None: + self.word_count = word_count + if paragraph_count is not None: + self.paragraph_count = paragraph_count + if page_count is not None: + self.page_count = page_count + if footnotes_stat_data is not None: + self.footnotes_stat_data = footnotes_stat_data + if page_stat_data is not None: + self.page_stat_data = page_stat_data + + @property + def word_count(self): + """Gets the word_count of this DocumentStatData. # noqa: E501 + + Total count of words in the document # noqa: E501 + + :return: The word_count of this DocumentStatData. # noqa: E501 + :rtype: int + """ + return self._word_count + + @word_count.setter + def word_count(self, word_count): + """Sets the word_count of this DocumentStatData. + + Total count of words in the document # noqa: E501 + + :param word_count: The word_count of this DocumentStatData. # noqa: E501 + :type: int + """ + if word_count is None: + raise ValueError("Invalid value for `word_count`, must not be `None`") # noqa: E501 + self._word_count = word_count + @property + def paragraph_count(self): + """Gets the paragraph_count of this DocumentStatData. # noqa: E501 + + Total count of paragraphs in the document # noqa: E501 + + :return: The paragraph_count of this DocumentStatData. # noqa: E501 + :rtype: int + """ + return self._paragraph_count + + @paragraph_count.setter + def paragraph_count(self, paragraph_count): + """Sets the paragraph_count of this DocumentStatData. + + Total count of paragraphs in the document # noqa: E501 + + :param paragraph_count: The paragraph_count of this DocumentStatData. # noqa: E501 + :type: int + """ + if paragraph_count is None: + raise ValueError("Invalid value for `paragraph_count`, must not be `None`") # noqa: E501 + self._paragraph_count = paragraph_count + @property + def page_count(self): + """Gets the page_count of this DocumentStatData. # noqa: E501 + + Total count of pages in the document # noqa: E501 + + :return: The page_count of this DocumentStatData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this DocumentStatData. + + Total count of pages in the document # noqa: E501 + + :param page_count: The page_count of this DocumentStatData. # noqa: E501 + :type: int + """ + if page_count is None: + raise ValueError("Invalid value for `page_count`, must not be `None`") # noqa: E501 + self._page_count = page_count + @property + def footnotes_stat_data(self): + """Gets the footnotes_stat_data of this DocumentStatData. # noqa: E501 + + Detailed statistics of footnotes # noqa: E501 + + :return: The footnotes_stat_data of this DocumentStatData. # noqa: E501 + :rtype: FootnotesStatData + """ + return self._footnotes_stat_data + + @footnotes_stat_data.setter + def footnotes_stat_data(self, footnotes_stat_data): + """Sets the footnotes_stat_data of this DocumentStatData. + + Detailed statistics of footnotes # noqa: E501 + + :param footnotes_stat_data: The footnotes_stat_data of this DocumentStatData. # noqa: E501 + :type: FootnotesStatData + """ + self._footnotes_stat_data = footnotes_stat_data + @property + def page_stat_data(self): + """Gets the page_stat_data of this DocumentStatData. # noqa: E501 + + Detailed statistics of all pages # noqa: E501 + + :return: The page_stat_data of this DocumentStatData. # noqa: E501 + :rtype: list[PageStatData] + """ + return self._page_stat_data + + @page_stat_data.setter + def page_stat_data(self, page_stat_data): + """Sets the page_stat_data of this DocumentStatData. + + Detailed statistics of all pages # noqa: E501 + + :param page_stat_data: The page_stat_data of this DocumentStatData. # noqa: E501 + :type: list[PageStatData] + """ + self._page_stat_data = page_stat_data + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DocumentStatData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/downsample_options_data.py b/asposewordscloud/models/downsample_options_data.py new file mode 100644 index 00000000..d0b0a6af --- /dev/null +++ b/asposewordscloud/models/downsample_options_data.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DownsampleOptionsData(object): + """Container class for Downsample options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'downsample_images': 'bool', + 'resolution': 'int', + 'resolution_threshold': 'int' + } + + attribute_map = { + 'downsample_images': 'DownsampleImages', + 'resolution': 'Resolution', + 'resolution_threshold': 'ResolutionThreshold' + } + + def __init__(self, downsample_images=None, resolution=None, resolution_threshold=None): # noqa: E501 + """DownsampleOptionsData - a model defined in Swagger""" # noqa: E501 + + self._downsample_images = None + self._resolution = None + self._resolution_threshold = None + self.discriminator = None + + if downsample_images is not None: + self.downsample_images = downsample_images + if resolution is not None: + self.resolution = resolution + if resolution_threshold is not None: + self.resolution_threshold = resolution_threshold + + @property + def downsample_images(self): + """Gets the downsample_images of this DownsampleOptionsData. # noqa: E501 + + Specifies whether images should be downsampled. # noqa: E501 + + :return: The downsample_images of this DownsampleOptionsData. # noqa: E501 + :rtype: bool + """ + return self._downsample_images + + @downsample_images.setter + def downsample_images(self, downsample_images): + """Sets the downsample_images of this DownsampleOptionsData. + + Specifies whether images should be downsampled. # noqa: E501 + + :param downsample_images: The downsample_images of this DownsampleOptionsData. # noqa: E501 + :type: bool + """ + self._downsample_images = downsample_images + @property + def resolution(self): + """Gets the resolution of this DownsampleOptionsData. # noqa: E501 + + Specifies the resolution in pixels per inch which the images should be downsampled to. # noqa: E501 + + :return: The resolution of this DownsampleOptionsData. # noqa: E501 + :rtype: int + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this DownsampleOptionsData. + + Specifies the resolution in pixels per inch which the images should be downsampled to. # noqa: E501 + + :param resolution: The resolution of this DownsampleOptionsData. # noqa: E501 + :type: int + """ + self._resolution = resolution + @property + def resolution_threshold(self): + """Gets the resolution_threshold of this DownsampleOptionsData. # noqa: E501 + + Specifies the threshold resolution in pixels per inch. If resolution of an image in the document is less than threshold value, the downsampling algorithm will not be applied. A value of 0 means the threshold check is not used and all images that can be reduced in size are downsampled. # noqa: E501 + + :return: The resolution_threshold of this DownsampleOptionsData. # noqa: E501 + :rtype: int + """ + return self._resolution_threshold + + @resolution_threshold.setter + def resolution_threshold(self, resolution_threshold): + """Sets the resolution_threshold of this DownsampleOptionsData. + + Specifies the threshold resolution in pixels per inch. If resolution of an image in the document is less than threshold value, the downsampling algorithm will not be applied. A value of 0 means the threshold check is not used and all images that can be reduced in size are downsampled. # noqa: E501 + + :param resolution_threshold: The resolution_threshold of this DownsampleOptionsData. # noqa: E501 + :type: int + """ + self._resolution_threshold = resolution_threshold + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DownsampleOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/drawing_object.py b/asposewordscloud/models/drawing_object.py new file mode 100644 index 00000000..ff7dbc9b --- /dev/null +++ b/asposewordscloud/models/drawing_object.py @@ -0,0 +1,432 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DrawingObject(object): + """Represents Drawing Object DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'height': 'float', + 'image_data_link': 'WordsApiLink', + 'left': 'float', + 'ole_data_link': 'WordsApiLink', + 'relative_horizontal_position': 'str', + 'relative_vertical_position': 'str', + 'render_links': 'list[WordsApiLink]', + 'top': 'float', + 'width': 'float', + 'wrap_type': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'height': 'Height', + 'image_data_link': 'ImageDataLink', + 'left': 'Left', + 'ole_data_link': 'OleDataLink', + 'relative_horizontal_position': 'RelativeHorizontalPosition', + 'relative_vertical_position': 'RelativeVerticalPosition', + 'render_links': 'RenderLinks', + 'top': 'Top', + 'width': 'Width', + 'wrap_type': 'WrapType' + } + + def __init__(self, link=None, node_id=None, height=None, image_data_link=None, left=None, ole_data_link=None, relative_horizontal_position=None, relative_vertical_position=None, render_links=None, top=None, width=None, wrap_type=None): # noqa: E501 + """DrawingObject - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._height = None + self._image_data_link = None + self._left = None + self._ole_data_link = None + self._relative_horizontal_position = None + self._relative_vertical_position = None + self._render_links = None + self._top = None + self._width = None + self._wrap_type = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if height is not None: + self.height = height + if image_data_link is not None: + self.image_data_link = image_data_link + if left is not None: + self.left = left + if ole_data_link is not None: + self.ole_data_link = ole_data_link + if relative_horizontal_position is not None: + self.relative_horizontal_position = relative_horizontal_position + if relative_vertical_position is not None: + self.relative_vertical_position = relative_vertical_position + if render_links is not None: + self.render_links = render_links + if top is not None: + self.top = top + if width is not None: + self.width = width + if wrap_type is not None: + self.wrap_type = wrap_type + + @property + def link(self): + """Gets the link of this DrawingObject. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this DrawingObject. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this DrawingObject. + + Link to the document. # noqa: E501 + + :param link: The link of this DrawingObject. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this DrawingObject. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this DrawingObject. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this DrawingObject. + + Node id # noqa: E501 + + :param node_id: The node_id of this DrawingObject. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def height(self): + """Gets the height of this DrawingObject. # noqa: E501 + + Height of the drawing object in points. # noqa: E501 + + :return: The height of this DrawingObject. # noqa: E501 + :rtype: float + """ + return self._height + + @height.setter + def height(self, height): + """Sets the height of this DrawingObject. + + Height of the drawing object in points. # noqa: E501 + + :param height: The height of this DrawingObject. # noqa: E501 + :type: float + """ + self._height = height + @property + def image_data_link(self): + """Gets the image_data_link of this DrawingObject. # noqa: E501 + + Link to image data. Can be null if shape does not have an image. # noqa: E501 + + :return: The image_data_link of this DrawingObject. # noqa: E501 + :rtype: WordsApiLink + """ + return self._image_data_link + + @image_data_link.setter + def image_data_link(self, image_data_link): + """Sets the image_data_link of this DrawingObject. + + Link to image data. Can be null if shape does not have an image. # noqa: E501 + + :param image_data_link: The image_data_link of this DrawingObject. # noqa: E501 + :type: WordsApiLink + """ + self._image_data_link = image_data_link + @property + def left(self): + """Gets the left of this DrawingObject. # noqa: E501 + + Distance in points from the origin to the left side of the image. # noqa: E501 + + :return: The left of this DrawingObject. # noqa: E501 + :rtype: float + """ + return self._left + + @left.setter + def left(self, left): + """Sets the left of this DrawingObject. + + Distance in points from the origin to the left side of the image. # noqa: E501 + + :param left: The left of this DrawingObject. # noqa: E501 + :type: float + """ + self._left = left + @property + def ole_data_link(self): + """Gets the ole_data_link of this DrawingObject. # noqa: E501 + + Link to ole object. Can be null if shape does not have ole data. # noqa: E501 + + :return: The ole_data_link of this DrawingObject. # noqa: E501 + :rtype: WordsApiLink + """ + return self._ole_data_link + + @ole_data_link.setter + def ole_data_link(self, ole_data_link): + """Sets the ole_data_link of this DrawingObject. + + Link to ole object. Can be null if shape does not have ole data. # noqa: E501 + + :param ole_data_link: The ole_data_link of this DrawingObject. # noqa: E501 + :type: WordsApiLink + """ + self._ole_data_link = ole_data_link + @property + def relative_horizontal_position(self): + """Gets the relative_horizontal_position of this DrawingObject. # noqa: E501 + + Specifies where the distance to the image is measured from. # noqa: E501 + + :return: The relative_horizontal_position of this DrawingObject. # noqa: E501 + :rtype: str + """ + return self._relative_horizontal_position + + @relative_horizontal_position.setter + def relative_horizontal_position(self, relative_horizontal_position): + """Sets the relative_horizontal_position of this DrawingObject. + + Specifies where the distance to the image is measured from. # noqa: E501 + + :param relative_horizontal_position: The relative_horizontal_position of this DrawingObject. # noqa: E501 + :type: str + """ + allowed_values = ["Margin", "Page", "Column", "Default", "Character", "LeftMargin", "RightMargin", "InsideMargin", "OutsideMargin"] # noqa: E501 + if not relative_horizontal_position.isdigit(): + if relative_horizontal_position not in allowed_values: + raise ValueError( + "Invalid value for `relative_horizontal_position` ({0}), must be one of {1}" # noqa: E501 + .format(relative_horizontal_position, allowed_values)) + self._relative_horizontal_position = relative_horizontal_position + else: + self._relative_horizontal_position = allowed_values[int(relative_horizontal_position) if six.PY3 else long(relative_horizontal_position)] + @property + def relative_vertical_position(self): + """Gets the relative_vertical_position of this DrawingObject. # noqa: E501 + + Specifies where the distance to the image measured from. # noqa: E501 + + :return: The relative_vertical_position of this DrawingObject. # noqa: E501 + :rtype: str + """ + return self._relative_vertical_position + + @relative_vertical_position.setter + def relative_vertical_position(self, relative_vertical_position): + """Sets the relative_vertical_position of this DrawingObject. + + Specifies where the distance to the image measured from. # noqa: E501 + + :param relative_vertical_position: The relative_vertical_position of this DrawingObject. # noqa: E501 + :type: str + """ + allowed_values = ["Margin", "TableDefault", "Page", "Paragraph", "TextFrameDefault", "Line", "TopMargin", "BottomMargin", "InsideMargin", "OutsideMargin"] # noqa: E501 + if not relative_vertical_position.isdigit(): + if relative_vertical_position not in allowed_values: + raise ValueError( + "Invalid value for `relative_vertical_position` ({0}), must be one of {1}" # noqa: E501 + .format(relative_vertical_position, allowed_values)) + self._relative_vertical_position = relative_vertical_position + else: + self._relative_vertical_position = allowed_values[int(relative_vertical_position) if six.PY3 else long(relative_vertical_position)] + @property + def render_links(self): + """Gets the render_links of this DrawingObject. # noqa: E501 + + A list of links that originate from this . # noqa: E501 + + :return: The render_links of this DrawingObject. # noqa: E501 + :rtype: list[WordsApiLink] + """ + return self._render_links + + @render_links.setter + def render_links(self, render_links): + """Sets the render_links of this DrawingObject. + + A list of links that originate from this . # noqa: E501 + + :param render_links: The render_links of this DrawingObject. # noqa: E501 + :type: list[WordsApiLink] + """ + self._render_links = render_links + @property + def top(self): + """Gets the top of this DrawingObject. # noqa: E501 + + Distance in points from the origin to the top side of the image. # noqa: E501 + + :return: The top of this DrawingObject. # noqa: E501 + :rtype: float + """ + return self._top + + @top.setter + def top(self, top): + """Sets the top of this DrawingObject. + + Distance in points from the origin to the top side of the image. # noqa: E501 + + :param top: The top of this DrawingObject. # noqa: E501 + :type: float + """ + self._top = top + @property + def width(self): + """Gets the width of this DrawingObject. # noqa: E501 + + Width of the drawing objects in points. # noqa: E501 + + :return: The width of this DrawingObject. # noqa: E501 + :rtype: float + """ + return self._width + + @width.setter + def width(self, width): + """Sets the width of this DrawingObject. + + Width of the drawing objects in points. # noqa: E501 + + :param width: The width of this DrawingObject. # noqa: E501 + :type: float + """ + self._width = width + @property + def wrap_type(self): + """Gets the wrap_type of this DrawingObject. # noqa: E501 + + Specifies how to wrap text around the image. # noqa: E501 + + :return: The wrap_type of this DrawingObject. # noqa: E501 + :rtype: str + """ + return self._wrap_type + + @wrap_type.setter + def wrap_type(self, wrap_type): + """Sets the wrap_type of this DrawingObject. + + Specifies how to wrap text around the image. # noqa: E501 + + :param wrap_type: The wrap_type of this DrawingObject. # noqa: E501 + :type: str + """ + allowed_values = ["Inline", "TopBottom", "Square", "None", "Tight", "Through"] # noqa: E501 + if not wrap_type.isdigit(): + if wrap_type not in allowed_values: + raise ValueError( + "Invalid value for `wrap_type` ({0}), must be one of {1}" # noqa: E501 + .format(wrap_type, allowed_values)) + self._wrap_type = wrap_type + else: + self._wrap_type = allowed_values[int(wrap_type) if six.PY3 else long(wrap_type)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DrawingObject): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/drawing_object_collection.py b/asposewordscloud/models/drawing_object_collection.py new file mode 100644 index 00000000..d996c5a7 --- /dev/null +++ b/asposewordscloud/models/drawing_object_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DrawingObjectCollection(object): + """Represents drawing objects collection DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[LinkElement]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """DrawingObjectCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this DrawingObjectCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this DrawingObjectCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this DrawingObjectCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this DrawingObjectCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this DrawingObjectCollection. # noqa: E501 + + Collection of DrawingObjects links # noqa: E501 + + :return: The list of this DrawingObjectCollection. # noqa: E501 + :rtype: list[LinkElement] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this DrawingObjectCollection. + + Collection of DrawingObjects links # noqa: E501 + + :param list: The list of this DrawingObjectCollection. # noqa: E501 + :type: list[LinkElement] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DrawingObjectCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/drawing_object_link.py b/asposewordscloud/models/drawing_object_link.py new file mode 100644 index 00000000..62375aca --- /dev/null +++ b/asposewordscloud/models/drawing_object_link.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DrawingObjectLink(object): + """Represents link for Drawing Object DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId' + } + + def __init__(self, link=None, node_id=None): # noqa: E501 + """DrawingObjectLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + + @property + def link(self): + """Gets the link of this DrawingObjectLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this DrawingObjectLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this DrawingObjectLink. + + Link to the document. # noqa: E501 + + :param link: The link of this DrawingObjectLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this DrawingObjectLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this DrawingObjectLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this DrawingObjectLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this DrawingObjectLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DrawingObjectLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/drawing_object_response.py b/asposewordscloud/models/drawing_object_response.py new file mode 100644 index 00000000..6914fe21 --- /dev/null +++ b/asposewordscloud/models/drawing_object_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DrawingObjectResponse(object): + """Response for \"drawingObjects/n\" resource. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'drawing_object': 'DrawingObject' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'drawing_object': 'DrawingObject' + } + + def __init__(self, code=None, status=None, drawing_object=None): # noqa: E501 + """DrawingObjectResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._drawing_object = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if drawing_object is not None: + self.drawing_object = drawing_object + + @property + def code(self): + """Gets the code of this DrawingObjectResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this DrawingObjectResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this DrawingObjectResponse. + + Response status code. # noqa: E501 + + :param code: The code of this DrawingObjectResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this DrawingObjectResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this DrawingObjectResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this DrawingObjectResponse. + + Response status. # noqa: E501 + + :param status: The status of this DrawingObjectResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def drawing_object(self): + """Gets the drawing_object of this DrawingObjectResponse. # noqa: E501 + + Drawing object. # noqa: E501 + + :return: The drawing_object of this DrawingObjectResponse. # noqa: E501 + :rtype: DrawingObject + """ + return self._drawing_object + + @drawing_object.setter + def drawing_object(self, drawing_object): + """Sets the drawing_object of this DrawingObjectResponse. + + Drawing object. # noqa: E501 + + :param drawing_object: The drawing_object of this DrawingObjectResponse. # noqa: E501 + :type: DrawingObject + """ + self._drawing_object = drawing_object + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DrawingObjectResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/drawing_objects_response.py b/asposewordscloud/models/drawing_objects_response.py new file mode 100644 index 00000000..c9e63ca9 --- /dev/null +++ b/asposewordscloud/models/drawing_objects_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class DrawingObjectsResponse(object): + """This response should be returned by the service when handling: GET /drawingObjects. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'drawing_objects': 'DrawingObjectCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'drawing_objects': 'DrawingObjects' + } + + def __init__(self, code=None, status=None, drawing_objects=None): # noqa: E501 + """DrawingObjectsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._drawing_objects = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if drawing_objects is not None: + self.drawing_objects = drawing_objects + + @property + def code(self): + """Gets the code of this DrawingObjectsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this DrawingObjectsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this DrawingObjectsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this DrawingObjectsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this DrawingObjectsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this DrawingObjectsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this DrawingObjectsResponse. + + Response status. # noqa: E501 + + :param status: The status of this DrawingObjectsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def drawing_objects(self): + """Gets the drawing_objects of this DrawingObjectsResponse. # noqa: E501 + + Collection of drawing objects. # noqa: E501 + + :return: The drawing_objects of this DrawingObjectsResponse. # noqa: E501 + :rtype: DrawingObjectCollection + """ + return self._drawing_objects + + @drawing_objects.setter + def drawing_objects(self, drawing_objects): + """Sets the drawing_objects of this DrawingObjectsResponse. + + Collection of drawing objects. # noqa: E501 + + :param drawing_objects: The drawing_objects of this DrawingObjectsResponse. # noqa: E501 + :type: DrawingObjectCollection + """ + self._drawing_objects = drawing_objects + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, DrawingObjectsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/emf_save_options_data.py b/asposewordscloud/models/emf_save_options_data.py new file mode 100644 index 00000000..3952eb68 --- /dev/null +++ b/asposewordscloud/models/emf_save_options_data.py @@ -0,0 +1,824 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class EmfSaveOptionsData(object): + """Container class for emf save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None): # noqa: E501 + """EmfSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + + @property + def color_mode(self): + """Gets the color_mode of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this EmfSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this EmfSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this EmfSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this EmfSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this EmfSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this EmfSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this EmfSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this EmfSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this EmfSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this EmfSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this EmfSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this EmfSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this EmfSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this EmfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this EmfSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this EmfSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this EmfSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this EmfSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this EmfSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this EmfSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this EmfSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this EmfSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this EmfSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this EmfSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this EmfSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this EmfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this EmfSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this EmfSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this EmfSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this EmfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this EmfSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this EmfSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this EmfSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this EmfSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this EmfSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this EmfSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this EmfSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this EmfSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this EmfSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this EmfSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this EmfSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this EmfSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this EmfSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this EmfSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this EmfSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this EmfSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this EmfSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this EmfSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this EmfSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this EmfSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this EmfSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this EmfSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this EmfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this EmfSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this EmfSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this EmfSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this EmfSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this EmfSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this EmfSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this EmfSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this EmfSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this EmfSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this EmfSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this EmfSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this EmfSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this EmfSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this EmfSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this EmfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this EmfSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this EmfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this EmfSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this EmfSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this EmfSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this EmfSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, EmfSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/epub_save_options_data.py b/asposewordscloud/models/epub_save_options_data.py new file mode 100644 index 00000000..a7179ff7 --- /dev/null +++ b/asposewordscloud/models/epub_save_options_data.py @@ -0,0 +1,1368 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class EpubSaveOptionsData(object): + """Container class for epub save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'allow_negative_indent': 'bool', + 'css_class_name_prefix': 'str', + 'css_style_sheet_file_name': 'str', + 'css_style_sheet_type': 'str', + 'document_split_criteria': 'str', + 'document_split_heading_level': 'int', + 'encoding': 'str', + 'export_document_properties': 'bool', + 'export_drop_down_form_field_as_text': 'bool', + 'export_font_resources': 'bool', + 'export_fonts_as_base64': 'bool', + 'export_headers_footers_mode': 'str', + 'export_images_as_base64': 'bool', + 'export_language_information': 'bool', + 'export_list_labels': 'str', + 'export_original_url_for_linked_images': 'bool', + 'export_page_margins': 'bool', + 'export_page_setup': 'bool', + 'export_relative_font_size': 'bool', + 'export_roundtrip_information': 'bool', + 'export_text_box_as_svg': 'bool', + 'export_text_input_form_field_as_text': 'bool', + 'export_toc_page_numbers': 'bool', + 'export_xhtml_transitional': 'bool', + 'font_resources_subsetting_size_threshold': 'int', + 'fonts_folder': 'str', + 'fonts_folder_alias': 'str', + 'html_version': 'str', + 'image_resolution': 'int', + 'images_folder': 'str', + 'images_folder_alias': 'str', + 'metafile_format': 'str', + 'office_math_output_mode': 'str', + 'pretty_format': 'bool', + 'resource_folder': 'str', + 'resource_folder_alias': 'str', + 'scale_image_to_shape_size': 'bool', + 'table_width_output_mode': 'str', + 'epub_navigation_map_level': 'int' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'allow_negative_indent': 'AllowNegativeIndent', + 'css_class_name_prefix': 'CssClassNamePrefix', + 'css_style_sheet_file_name': 'CssStyleSheetFileName', + 'css_style_sheet_type': 'CssStyleSheetType', + 'document_split_criteria': 'DocumentSplitCriteria', + 'document_split_heading_level': 'DocumentSplitHeadingLevel', + 'encoding': 'Encoding', + 'export_document_properties': 'ExportDocumentProperties', + 'export_drop_down_form_field_as_text': 'ExportDropDownFormFieldAsText', + 'export_font_resources': 'ExportFontResources', + 'export_fonts_as_base64': 'ExportFontsAsBase64', + 'export_headers_footers_mode': 'ExportHeadersFootersMode', + 'export_images_as_base64': 'ExportImagesAsBase64', + 'export_language_information': 'ExportLanguageInformation', + 'export_list_labels': 'ExportListLabels', + 'export_original_url_for_linked_images': 'ExportOriginalUrlForLinkedImages', + 'export_page_margins': 'ExportPageMargins', + 'export_page_setup': 'ExportPageSetup', + 'export_relative_font_size': 'ExportRelativeFontSize', + 'export_roundtrip_information': 'ExportRoundtripInformation', + 'export_text_box_as_svg': 'ExportTextBoxAsSvg', + 'export_text_input_form_field_as_text': 'ExportTextInputFormFieldAsText', + 'export_toc_page_numbers': 'ExportTocPageNumbers', + 'export_xhtml_transitional': 'ExportXhtmlTransitional', + 'font_resources_subsetting_size_threshold': 'FontResourcesSubsettingSizeThreshold', + 'fonts_folder': 'FontsFolder', + 'fonts_folder_alias': 'FontsFolderAlias', + 'html_version': 'HtmlVersion', + 'image_resolution': 'ImageResolution', + 'images_folder': 'ImagesFolder', + 'images_folder_alias': 'ImagesFolderAlias', + 'metafile_format': 'MetafileFormat', + 'office_math_output_mode': 'OfficeMathOutputMode', + 'pretty_format': 'PrettyFormat', + 'resource_folder': 'ResourceFolder', + 'resource_folder_alias': 'ResourceFolderAlias', + 'scale_image_to_shape_size': 'ScaleImageToShapeSize', + 'table_width_output_mode': 'TableWidthOutputMode', + 'epub_navigation_map_level': 'EpubNavigationMapLevel' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, allow_negative_indent=None, css_class_name_prefix=None, css_style_sheet_file_name=None, css_style_sheet_type=None, document_split_criteria=None, document_split_heading_level=None, encoding=None, export_document_properties=None, export_drop_down_form_field_as_text=None, export_font_resources=None, export_fonts_as_base64=None, export_headers_footers_mode=None, export_images_as_base64=None, export_language_information=None, export_list_labels=None, export_original_url_for_linked_images=None, export_page_margins=None, export_page_setup=None, export_relative_font_size=None, export_roundtrip_information=None, export_text_box_as_svg=None, export_text_input_form_field_as_text=None, export_toc_page_numbers=None, export_xhtml_transitional=None, font_resources_subsetting_size_threshold=None, fonts_folder=None, fonts_folder_alias=None, html_version=None, image_resolution=None, images_folder=None, images_folder_alias=None, metafile_format=None, office_math_output_mode=None, pretty_format=None, resource_folder=None, resource_folder_alias=None, scale_image_to_shape_size=None, table_width_output_mode=None, epub_navigation_map_level=None): # noqa: E501 + """EpubSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._allow_negative_indent = None + self._css_class_name_prefix = None + self._css_style_sheet_file_name = None + self._css_style_sheet_type = None + self._document_split_criteria = None + self._document_split_heading_level = None + self._encoding = None + self._export_document_properties = None + self._export_drop_down_form_field_as_text = None + self._export_font_resources = None + self._export_fonts_as_base64 = None + self._export_headers_footers_mode = None + self._export_images_as_base64 = None + self._export_language_information = None + self._export_list_labels = None + self._export_original_url_for_linked_images = None + self._export_page_margins = None + self._export_page_setup = None + self._export_relative_font_size = None + self._export_roundtrip_information = None + self._export_text_box_as_svg = None + self._export_text_input_form_field_as_text = None + self._export_toc_page_numbers = None + self._export_xhtml_transitional = None + self._font_resources_subsetting_size_threshold = None + self._fonts_folder = None + self._fonts_folder_alias = None + self._html_version = None + self._image_resolution = None + self._images_folder = None + self._images_folder_alias = None + self._metafile_format = None + self._office_math_output_mode = None + self._pretty_format = None + self._resource_folder = None + self._resource_folder_alias = None + self._scale_image_to_shape_size = None + self._table_width_output_mode = None + self._epub_navigation_map_level = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if allow_negative_indent is not None: + self.allow_negative_indent = allow_negative_indent + if css_class_name_prefix is not None: + self.css_class_name_prefix = css_class_name_prefix + if css_style_sheet_file_name is not None: + self.css_style_sheet_file_name = css_style_sheet_file_name + if css_style_sheet_type is not None: + self.css_style_sheet_type = css_style_sheet_type + if document_split_criteria is not None: + self.document_split_criteria = document_split_criteria + if document_split_heading_level is not None: + self.document_split_heading_level = document_split_heading_level + if encoding is not None: + self.encoding = encoding + if export_document_properties is not None: + self.export_document_properties = export_document_properties + if export_drop_down_form_field_as_text is not None: + self.export_drop_down_form_field_as_text = export_drop_down_form_field_as_text + if export_font_resources is not None: + self.export_font_resources = export_font_resources + if export_fonts_as_base64 is not None: + self.export_fonts_as_base64 = export_fonts_as_base64 + if export_headers_footers_mode is not None: + self.export_headers_footers_mode = export_headers_footers_mode + if export_images_as_base64 is not None: + self.export_images_as_base64 = export_images_as_base64 + if export_language_information is not None: + self.export_language_information = export_language_information + if export_list_labels is not None: + self.export_list_labels = export_list_labels + if export_original_url_for_linked_images is not None: + self.export_original_url_for_linked_images = export_original_url_for_linked_images + if export_page_margins is not None: + self.export_page_margins = export_page_margins + if export_page_setup is not None: + self.export_page_setup = export_page_setup + if export_relative_font_size is not None: + self.export_relative_font_size = export_relative_font_size + if export_roundtrip_information is not None: + self.export_roundtrip_information = export_roundtrip_information + if export_text_box_as_svg is not None: + self.export_text_box_as_svg = export_text_box_as_svg + if export_text_input_form_field_as_text is not None: + self.export_text_input_form_field_as_text = export_text_input_form_field_as_text + if export_toc_page_numbers is not None: + self.export_toc_page_numbers = export_toc_page_numbers + if export_xhtml_transitional is not None: + self.export_xhtml_transitional = export_xhtml_transitional + if font_resources_subsetting_size_threshold is not None: + self.font_resources_subsetting_size_threshold = font_resources_subsetting_size_threshold + if fonts_folder is not None: + self.fonts_folder = fonts_folder + if fonts_folder_alias is not None: + self.fonts_folder_alias = fonts_folder_alias + if html_version is not None: + self.html_version = html_version + if image_resolution is not None: + self.image_resolution = image_resolution + if images_folder is not None: + self.images_folder = images_folder + if images_folder_alias is not None: + self.images_folder_alias = images_folder_alias + if metafile_format is not None: + self.metafile_format = metafile_format + if office_math_output_mode is not None: + self.office_math_output_mode = office_math_output_mode + if pretty_format is not None: + self.pretty_format = pretty_format + if resource_folder is not None: + self.resource_folder = resource_folder + if resource_folder_alias is not None: + self.resource_folder_alias = resource_folder_alias + if scale_image_to_shape_size is not None: + self.scale_image_to_shape_size = scale_image_to_shape_size + if table_width_output_mode is not None: + self.table_width_output_mode = table_width_output_mode + if epub_navigation_map_level is not None: + self.epub_navigation_map_level = epub_navigation_map_level + + @property + def color_mode(self): + """Gets the color_mode of this EpubSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this EpubSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this EpubSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this EpubSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this EpubSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this EpubSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this EpubSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this EpubSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this EpubSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this EpubSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this EpubSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this EpubSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this EpubSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this EpubSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this EpubSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this EpubSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this EpubSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this EpubSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def allow_negative_indent(self): + """Gets the allow_negative_indent of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether negative left and right indents of paragraphs are allowed (not normalized) # noqa: E501 + + :return: The allow_negative_indent of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._allow_negative_indent + + @allow_negative_indent.setter + def allow_negative_indent(self, allow_negative_indent): + """Sets the allow_negative_indent of this EpubSaveOptionsData. + + Specifies whether negative left and right indents of paragraphs are allowed (not normalized) # noqa: E501 + + :param allow_negative_indent: The allow_negative_indent of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._allow_negative_indent = allow_negative_indent + @property + def css_class_name_prefix(self): + """Gets the css_class_name_prefix of this EpubSaveOptionsData. # noqa: E501 + + Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. # noqa: E501 + + :return: The css_class_name_prefix of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_class_name_prefix + + @css_class_name_prefix.setter + def css_class_name_prefix(self, css_class_name_prefix): + """Sets the css_class_name_prefix of this EpubSaveOptionsData. + + Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. # noqa: E501 + + :param css_class_name_prefix: The css_class_name_prefix of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_class_name_prefix = css_class_name_prefix + @property + def css_style_sheet_file_name(self): + """Gets the css_style_sheet_file_name of this EpubSaveOptionsData. # noqa: E501 + + Specifies the name of the CSS file written when the document is exported to HTML # noqa: E501 + + :return: The css_style_sheet_file_name of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_style_sheet_file_name + + @css_style_sheet_file_name.setter + def css_style_sheet_file_name(self, css_style_sheet_file_name): + """Sets the css_style_sheet_file_name of this EpubSaveOptionsData. + + Specifies the name of the CSS file written when the document is exported to HTML # noqa: E501 + + :param css_style_sheet_file_name: The css_style_sheet_file_name of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_style_sheet_file_name = css_style_sheet_file_name + @property + def css_style_sheet_type(self): + """Gets the css_style_sheet_type of this EpubSaveOptionsData. # noqa: E501 + + Specifies how CSS styles are exported # noqa: E501 + + :return: The css_style_sheet_type of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_style_sheet_type + + @css_style_sheet_type.setter + def css_style_sheet_type(self, css_style_sheet_type): + """Sets the css_style_sheet_type of this EpubSaveOptionsData. + + Specifies how CSS styles are exported # noqa: E501 + + :param css_style_sheet_type: The css_style_sheet_type of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_style_sheet_type = css_style_sheet_type + @property + def document_split_criteria(self): + """Gets the document_split_criteria of this EpubSaveOptionsData. # noqa: E501 + + Specifies how the document should be split when saving # noqa: E501 + + :return: The document_split_criteria of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._document_split_criteria + + @document_split_criteria.setter + def document_split_criteria(self, document_split_criteria): + """Sets the document_split_criteria of this EpubSaveOptionsData. + + Specifies how the document should be split when saving # noqa: E501 + + :param document_split_criteria: The document_split_criteria of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._document_split_criteria = document_split_criteria + @property + def document_split_heading_level(self): + """Gets the document_split_heading_level of this EpubSaveOptionsData. # noqa: E501 + + Specifies the maximum level of headings at which to split the document # noqa: E501 + + :return: The document_split_heading_level of this EpubSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._document_split_heading_level + + @document_split_heading_level.setter + def document_split_heading_level(self, document_split_heading_level): + """Sets the document_split_heading_level of this EpubSaveOptionsData. + + Specifies the maximum level of headings at which to split the document # noqa: E501 + + :param document_split_heading_level: The document_split_heading_level of this EpubSaveOptionsData. # noqa: E501 + :type: int + """ + self._document_split_heading_level = document_split_heading_level + @property + def encoding(self): + """Gets the encoding of this EpubSaveOptionsData. # noqa: E501 + + Specifies the encoding to use when exporting # noqa: E501 + + :return: The encoding of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._encoding + + @encoding.setter + def encoding(self, encoding): + """Sets the encoding of this EpubSaveOptionsData. + + Specifies the encoding to use when exporting # noqa: E501 + + :param encoding: The encoding of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._encoding = encoding + @property + def export_document_properties(self): + """Gets the export_document_properties of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether to export built-in and custom document properties # noqa: E501 + + :return: The export_document_properties of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_document_properties + + @export_document_properties.setter + def export_document_properties(self, export_document_properties): + """Sets the export_document_properties of this EpubSaveOptionsData. + + Specifies whether to export built-in and custom document properties # noqa: E501 + + :param export_document_properties: The export_document_properties of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_document_properties = export_document_properties + @property + def export_drop_down_form_field_as_text(self): + """Gets the export_drop_down_form_field_as_text of this EpubSaveOptionsData. # noqa: E501 + + Controls how drop-down form fields are saved to HTML. Default value is false. # noqa: E501 + + :return: The export_drop_down_form_field_as_text of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_drop_down_form_field_as_text + + @export_drop_down_form_field_as_text.setter + def export_drop_down_form_field_as_text(self, export_drop_down_form_field_as_text): + """Sets the export_drop_down_form_field_as_text of this EpubSaveOptionsData. + + Controls how drop-down form fields are saved to HTML. Default value is false. # noqa: E501 + + :param export_drop_down_form_field_as_text: The export_drop_down_form_field_as_text of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_drop_down_form_field_as_text = export_drop_down_form_field_as_text + @property + def export_font_resources(self): + """Gets the export_font_resources of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether font resources should be exported # noqa: E501 + + :return: The export_font_resources of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_font_resources + + @export_font_resources.setter + def export_font_resources(self, export_font_resources): + """Sets the export_font_resources of this EpubSaveOptionsData. + + Specifies whether font resources should be exported # noqa: E501 + + :param export_font_resources: The export_font_resources of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_font_resources = export_font_resources + @property + def export_fonts_as_base64(self): + """Gets the export_fonts_as_base64 of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. # noqa: E501 + + :return: The export_fonts_as_base64 of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_fonts_as_base64 + + @export_fonts_as_base64.setter + def export_fonts_as_base64(self, export_fonts_as_base64): + """Sets the export_fonts_as_base64 of this EpubSaveOptionsData. + + Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. # noqa: E501 + + :param export_fonts_as_base64: The export_fonts_as_base64 of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_fonts_as_base64 = export_fonts_as_base64 + @property + def export_headers_footers_mode(self): + """Gets the export_headers_footers_mode of this EpubSaveOptionsData. # noqa: E501 + + Specifies how headers and footers are output # noqa: E501 + + :return: The export_headers_footers_mode of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._export_headers_footers_mode + + @export_headers_footers_mode.setter + def export_headers_footers_mode(self, export_headers_footers_mode): + """Sets the export_headers_footers_mode of this EpubSaveOptionsData. + + Specifies how headers and footers are output # noqa: E501 + + :param export_headers_footers_mode: The export_headers_footers_mode of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._export_headers_footers_mode = export_headers_footers_mode + @property + def export_images_as_base64(self): + """Gets the export_images_as_base64 of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether images are saved in Base64 format # noqa: E501 + + :return: The export_images_as_base64 of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_images_as_base64 + + @export_images_as_base64.setter + def export_images_as_base64(self, export_images_as_base64): + """Sets the export_images_as_base64 of this EpubSaveOptionsData. + + Specifies whether images are saved in Base64 format # noqa: E501 + + :param export_images_as_base64: The export_images_as_base64 of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_images_as_base64 = export_images_as_base64 + @property + def export_language_information(self): + """Gets the export_language_information of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether language information is exported # noqa: E501 + + :return: The export_language_information of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_language_information + + @export_language_information.setter + def export_language_information(self, export_language_information): + """Sets the export_language_information of this EpubSaveOptionsData. + + Specifies whether language information is exported # noqa: E501 + + :param export_language_information: The export_language_information of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_language_information = export_language_information + @property + def export_list_labels(self): + """Gets the export_list_labels of this EpubSaveOptionsData. # noqa: E501 + + Controls how list labels are output # noqa: E501 + + :return: The export_list_labels of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._export_list_labels + + @export_list_labels.setter + def export_list_labels(self, export_list_labels): + """Sets the export_list_labels of this EpubSaveOptionsData. + + Controls how list labels are output # noqa: E501 + + :param export_list_labels: The export_list_labels of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._export_list_labels = export_list_labels + @property + def export_original_url_for_linked_images(self): + """Gets the export_original_url_for_linked_images of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether original URL should be used as the URL of the linked images. Default value is false. # noqa: E501 + + :return: The export_original_url_for_linked_images of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_original_url_for_linked_images + + @export_original_url_for_linked_images.setter + def export_original_url_for_linked_images(self, export_original_url_for_linked_images): + """Sets the export_original_url_for_linked_images of this EpubSaveOptionsData. + + Specifies whether original URL should be used as the URL of the linked images. Default value is false. # noqa: E501 + + :param export_original_url_for_linked_images: The export_original_url_for_linked_images of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_original_url_for_linked_images = export_original_url_for_linked_images + @property + def export_page_margins(self): + """Gets the export_page_margins of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. # noqa: E501 + + :return: The export_page_margins of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_page_margins + + @export_page_margins.setter + def export_page_margins(self, export_page_margins): + """Sets the export_page_margins of this EpubSaveOptionsData. + + Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. # noqa: E501 + + :param export_page_margins: The export_page_margins of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_page_margins = export_page_margins + @property + def export_page_setup(self): + """Gets the export_page_setup of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether page setup is exported # noqa: E501 + + :return: The export_page_setup of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_page_setup + + @export_page_setup.setter + def export_page_setup(self, export_page_setup): + """Sets the export_page_setup of this EpubSaveOptionsData. + + Specifies whether page setup is exported # noqa: E501 + + :param export_page_setup: The export_page_setup of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_page_setup = export_page_setup + @property + def export_relative_font_size(self): + """Gets the export_relative_font_size of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether font sizes should be output in relative units when saving # noqa: E501 + + :return: The export_relative_font_size of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_relative_font_size + + @export_relative_font_size.setter + def export_relative_font_size(self, export_relative_font_size): + """Sets the export_relative_font_size of this EpubSaveOptionsData. + + Specifies whether font sizes should be output in relative units when saving # noqa: E501 + + :param export_relative_font_size: The export_relative_font_size of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_relative_font_size = export_relative_font_size + @property + def export_roundtrip_information(self): + """Gets the export_roundtrip_information of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether to write the roundtrip information when saving to HTML Default value is true. # noqa: E501 + + :return: The export_roundtrip_information of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_roundtrip_information + + @export_roundtrip_information.setter + def export_roundtrip_information(self, export_roundtrip_information): + """Sets the export_roundtrip_information of this EpubSaveOptionsData. + + Specifies whether to write the roundtrip information when saving to HTML Default value is true. # noqa: E501 + + :param export_roundtrip_information: The export_roundtrip_information of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_roundtrip_information = export_roundtrip_information + @property + def export_text_box_as_svg(self): + """Gets the export_text_box_as_svg of this EpubSaveOptionsData. # noqa: E501 + + Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. # noqa: E501 + + :return: The export_text_box_as_svg of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_text_box_as_svg + + @export_text_box_as_svg.setter + def export_text_box_as_svg(self, export_text_box_as_svg): + """Sets the export_text_box_as_svg of this EpubSaveOptionsData. + + Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. # noqa: E501 + + :param export_text_box_as_svg: The export_text_box_as_svg of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_text_box_as_svg = export_text_box_as_svg + @property + def export_text_input_form_field_as_text(self): + """Gets the export_text_input_form_field_as_text of this EpubSaveOptionsData. # noqa: E501 + + Controls how text input form fields are saved # noqa: E501 + + :return: The export_text_input_form_field_as_text of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_text_input_form_field_as_text + + @export_text_input_form_field_as_text.setter + def export_text_input_form_field_as_text(self, export_text_input_form_field_as_text): + """Sets the export_text_input_form_field_as_text of this EpubSaveOptionsData. + + Controls how text input form fields are saved # noqa: E501 + + :param export_text_input_form_field_as_text: The export_text_input_form_field_as_text of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_text_input_form_field_as_text = export_text_input_form_field_as_text + @property + def export_toc_page_numbers(self): + """Gets the export_toc_page_numbers of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether to write page numbers to table of contents when saving # noqa: E501 + + :return: The export_toc_page_numbers of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_toc_page_numbers + + @export_toc_page_numbers.setter + def export_toc_page_numbers(self, export_toc_page_numbers): + """Sets the export_toc_page_numbers of this EpubSaveOptionsData. + + Specifies whether to write page numbers to table of contents when saving # noqa: E501 + + :param export_toc_page_numbers: The export_toc_page_numbers of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_toc_page_numbers = export_toc_page_numbers + @property + def export_xhtml_transitional(self): + """Gets the export_xhtml_transitional of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether to write the DOCTYPE declaration when saving # noqa: E501 + + :return: The export_xhtml_transitional of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_xhtml_transitional + + @export_xhtml_transitional.setter + def export_xhtml_transitional(self, export_xhtml_transitional): + """Sets the export_xhtml_transitional of this EpubSaveOptionsData. + + Specifies whether to write the DOCTYPE declaration when saving # noqa: E501 + + :param export_xhtml_transitional: The export_xhtml_transitional of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_xhtml_transitional = export_xhtml_transitional + @property + def font_resources_subsetting_size_threshold(self): + """Gets the font_resources_subsetting_size_threshold of this EpubSaveOptionsData. # noqa: E501 + + Controls which font resources need subsetting when saving # noqa: E501 + + :return: The font_resources_subsetting_size_threshold of this EpubSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._font_resources_subsetting_size_threshold + + @font_resources_subsetting_size_threshold.setter + def font_resources_subsetting_size_threshold(self, font_resources_subsetting_size_threshold): + """Sets the font_resources_subsetting_size_threshold of this EpubSaveOptionsData. + + Controls which font resources need subsetting when saving # noqa: E501 + + :param font_resources_subsetting_size_threshold: The font_resources_subsetting_size_threshold of this EpubSaveOptionsData. # noqa: E501 + :type: int + """ + self._font_resources_subsetting_size_threshold = font_resources_subsetting_size_threshold + @property + def fonts_folder(self): + """Gets the fonts_folder of this EpubSaveOptionsData. # noqa: E501 + + Specifies the physical folder where fonts are saved when exporting a document # noqa: E501 + + :return: The fonts_folder of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._fonts_folder + + @fonts_folder.setter + def fonts_folder(self, fonts_folder): + """Sets the fonts_folder of this EpubSaveOptionsData. + + Specifies the physical folder where fonts are saved when exporting a document # noqa: E501 + + :param fonts_folder: The fonts_folder of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._fonts_folder = fonts_folder + @property + def fonts_folder_alias(self): + """Gets the fonts_folder_alias of this EpubSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct font URIs # noqa: E501 + + :return: The fonts_folder_alias of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._fonts_folder_alias + + @fonts_folder_alias.setter + def fonts_folder_alias(self, fonts_folder_alias): + """Sets the fonts_folder_alias of this EpubSaveOptionsData. + + Specifies the name of the folder used to construct font URIs # noqa: E501 + + :param fonts_folder_alias: The fonts_folder_alias of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._fonts_folder_alias = fonts_folder_alias + @property + def html_version(self): + """Gets the html_version of this EpubSaveOptionsData. # noqa: E501 + + Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. # noqa: E501 + + :return: The html_version of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._html_version + + @html_version.setter + def html_version(self, html_version): + """Sets the html_version of this EpubSaveOptionsData. + + Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. # noqa: E501 + + :param html_version: The html_version of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Xhtml", "Html5"] # noqa: E501 + if not html_version.isdigit(): + if html_version not in allowed_values: + raise ValueError( + "Invalid value for `html_version` ({0}), must be one of {1}" # noqa: E501 + .format(html_version, allowed_values)) + self._html_version = html_version + else: + self._html_version = allowed_values[int(html_version) if six.PY3 else long(html_version)] + @property + def image_resolution(self): + """Gets the image_resolution of this EpubSaveOptionsData. # noqa: E501 + + Specifies the output resolution for images when exporting # noqa: E501 + + :return: The image_resolution of this EpubSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._image_resolution + + @image_resolution.setter + def image_resolution(self, image_resolution): + """Sets the image_resolution of this EpubSaveOptionsData. + + Specifies the output resolution for images when exporting # noqa: E501 + + :param image_resolution: The image_resolution of this EpubSaveOptionsData. # noqa: E501 + :type: int + """ + self._image_resolution = image_resolution + @property + def images_folder(self): + """Gets the images_folder of this EpubSaveOptionsData. # noqa: E501 + + Specifies the physical folder where images are saved when exporting a document # noqa: E501 + + :return: The images_folder of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder + + @images_folder.setter + def images_folder(self, images_folder): + """Sets the images_folder of this EpubSaveOptionsData. + + Specifies the physical folder where images are saved when exporting a document # noqa: E501 + + :param images_folder: The images_folder of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder = images_folder + @property + def images_folder_alias(self): + """Gets the images_folder_alias of this EpubSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :return: The images_folder_alias of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder_alias + + @images_folder_alias.setter + def images_folder_alias(self, images_folder_alias): + """Sets the images_folder_alias of this EpubSaveOptionsData. + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :param images_folder_alias: The images_folder_alias of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder_alias = images_folder_alias + @property + def metafile_format(self): + """Gets the metafile_format of this EpubSaveOptionsData. # noqa: E501 + + Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. # noqa: E501 + + :return: The metafile_format of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._metafile_format + + @metafile_format.setter + def metafile_format(self, metafile_format): + """Sets the metafile_format of this EpubSaveOptionsData. + + Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. # noqa: E501 + + :param metafile_format: The metafile_format of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Png", "Svg", "EmfOrWmf"] # noqa: E501 + if not metafile_format.isdigit(): + if metafile_format not in allowed_values: + raise ValueError( + "Invalid value for `metafile_format` ({0}), must be one of {1}" # noqa: E501 + .format(metafile_format, allowed_values)) + self._metafile_format = metafile_format + else: + self._metafile_format = allowed_values[int(metafile_format) if six.PY3 else long(metafile_format)] + @property + def office_math_output_mode(self): + """Gets the office_math_output_mode of this EpubSaveOptionsData. # noqa: E501 + + Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. # noqa: E501 + + :return: The office_math_output_mode of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._office_math_output_mode + + @office_math_output_mode.setter + def office_math_output_mode(self, office_math_output_mode): + """Sets the office_math_output_mode of this EpubSaveOptionsData. + + Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. # noqa: E501 + + :param office_math_output_mode: The office_math_output_mode of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Image", "MathML", "Text"] # noqa: E501 + if not office_math_output_mode.isdigit(): + if office_math_output_mode not in allowed_values: + raise ValueError( + "Invalid value for `office_math_output_mode` ({0}), must be one of {1}" # noqa: E501 + .format(office_math_output_mode, allowed_values)) + self._office_math_output_mode = office_math_output_mode + else: + self._office_math_output_mode = allowed_values[int(office_math_output_mode) if six.PY3 else long(office_math_output_mode)] + @property + def pretty_format(self): + """Gets the pretty_format of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this EpubSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + @property + def resource_folder(self): + """Gets the resource_folder of this EpubSaveOptionsData. # noqa: E501 + + Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. # noqa: E501 + + :return: The resource_folder of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resource_folder + + @resource_folder.setter + def resource_folder(self, resource_folder): + """Sets the resource_folder of this EpubSaveOptionsData. + + Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. # noqa: E501 + + :param resource_folder: The resource_folder of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._resource_folder = resource_folder + @property + def resource_folder_alias(self): + """Gets the resource_folder_alias of this EpubSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. # noqa: E501 + + :return: The resource_folder_alias of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resource_folder_alias + + @resource_folder_alias.setter + def resource_folder_alias(self, resource_folder_alias): + """Sets the resource_folder_alias of this EpubSaveOptionsData. + + Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. # noqa: E501 + + :param resource_folder_alias: The resource_folder_alias of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._resource_folder_alias = resource_folder_alias + @property + def scale_image_to_shape_size(self): + """Gets the scale_image_to_shape_size of this EpubSaveOptionsData. # noqa: E501 + + Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting # noqa: E501 + + :return: The scale_image_to_shape_size of this EpubSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._scale_image_to_shape_size + + @scale_image_to_shape_size.setter + def scale_image_to_shape_size(self, scale_image_to_shape_size): + """Sets the scale_image_to_shape_size of this EpubSaveOptionsData. + + Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting # noqa: E501 + + :param scale_image_to_shape_size: The scale_image_to_shape_size of this EpubSaveOptionsData. # noqa: E501 + :type: bool + """ + self._scale_image_to_shape_size = scale_image_to_shape_size + @property + def table_width_output_mode(self): + """Gets the table_width_output_mode of this EpubSaveOptionsData. # noqa: E501 + + Controls how table, row and cell widths are exported # noqa: E501 + + :return: The table_width_output_mode of this EpubSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._table_width_output_mode + + @table_width_output_mode.setter + def table_width_output_mode(self, table_width_output_mode): + """Sets the table_width_output_mode of this EpubSaveOptionsData. + + Controls how table, row and cell widths are exported # noqa: E501 + + :param table_width_output_mode: The table_width_output_mode of this EpubSaveOptionsData. # noqa: E501 + :type: str + """ + self._table_width_output_mode = table_width_output_mode + @property + def epub_navigation_map_level(self): + """Gets the epub_navigation_map_level of this EpubSaveOptionsData. # noqa: E501 + + Specifies the maximum level of headings populated to the navigation map when exporting # noqa: E501 + + :return: The epub_navigation_map_level of this EpubSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._epub_navigation_map_level + + @epub_navigation_map_level.setter + def epub_navigation_map_level(self, epub_navigation_map_level): + """Sets the epub_navigation_map_level of this EpubSaveOptionsData. + + Specifies the maximum level of headings populated to the navigation map when exporting # noqa: E501 + + :param epub_navigation_map_level: The epub_navigation_map_level of this EpubSaveOptionsData. # noqa: E501 + :type: int + """ + self._epub_navigation_map_level = epub_navigation_map_level + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, EpubSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/field.py b/asposewordscloud/models/field.py new file mode 100644 index 00000000..0eff4920 --- /dev/null +++ b/asposewordscloud/models/field.py @@ -0,0 +1,226 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Field(object): + """Field + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'field_code': 'str', + 'locale_id': 'str', + 'result': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'field_code': 'FieldCode', + 'locale_id': 'LocaleId', + 'result': 'Result' + } + + def __init__(self, link=None, node_id=None, field_code=None, locale_id=None, result=None): # noqa: E501 + """Field - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._field_code = None + self._locale_id = None + self._result = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if field_code is not None: + self.field_code = field_code + if locale_id is not None: + self.locale_id = locale_id + if result is not None: + self.result = result + + @property + def link(self): + """Gets the link of this Field. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Field. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Field. + + Link to the document. # noqa: E501 + + :param link: The link of this Field. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this Field. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this Field. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this Field. + + Node id # noqa: E501 + + :param node_id: The node_id of this Field. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def field_code(self): + """Gets the field_code of this Field. # noqa: E501 + + Field code # noqa: E501 + + :return: The field_code of this Field. # noqa: E501 + :rtype: str + """ + return self._field_code + + @field_code.setter + def field_code(self, field_code): + """Sets the field_code of this Field. + + Field code # noqa: E501 + + :param field_code: The field_code of this Field. # noqa: E501 + :type: str + """ + self._field_code = field_code + @property + def locale_id(self): + """Gets the locale_id of this Field. # noqa: E501 + + Gets or sets LCID of the field. # noqa: E501 + + :return: The locale_id of this Field. # noqa: E501 + :rtype: str + """ + return self._locale_id + + @locale_id.setter + def locale_id(self, locale_id): + """Sets the locale_id of this Field. + + Gets or sets LCID of the field. # noqa: E501 + + :param locale_id: The locale_id of this Field. # noqa: E501 + :type: str + """ + self._locale_id = locale_id + @property + def result(self): + """Gets the result of this Field. # noqa: E501 + + Field result # noqa: E501 + + :return: The result of this Field. # noqa: E501 + :rtype: str + """ + return self._result + + @result.setter + def result(self, result): + """Sets the result of this Field. + + Field result # noqa: E501 + + :param result: The result of this Field. # noqa: E501 + :type: str + """ + self._result = result + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Field): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/field_collection.py b/asposewordscloud/models/field_collection.py new file mode 100644 index 00000000..d8c34a1c --- /dev/null +++ b/asposewordscloud/models/field_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FieldCollection(object): + """Represents DTO for collection of fields. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[Field]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """FieldCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this FieldCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FieldCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FieldCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this FieldCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this FieldCollection. # noqa: E501 + + Collection of fields # noqa: E501 + + :return: The list of this FieldCollection. # noqa: E501 + :rtype: list[Field] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this FieldCollection. + + Collection of fields # noqa: E501 + + :param list: The list of this FieldCollection. # noqa: E501 + :type: list[Field] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FieldCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/field_link.py b/asposewordscloud/models/field_link.py new file mode 100644 index 00000000..1ddec2e4 --- /dev/null +++ b/asposewordscloud/models/field_link.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FieldLink(object): + """Field link + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'field_code': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'field_code': 'FieldCode' + } + + def __init__(self, link=None, node_id=None, field_code=None): # noqa: E501 + """FieldLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._field_code = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if field_code is not None: + self.field_code = field_code + + @property + def link(self): + """Gets the link of this FieldLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FieldLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FieldLink. + + Link to the document. # noqa: E501 + + :param link: The link of this FieldLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this FieldLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this FieldLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this FieldLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this FieldLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def field_code(self): + """Gets the field_code of this FieldLink. # noqa: E501 + + Field code # noqa: E501 + + :return: The field_code of this FieldLink. # noqa: E501 + :rtype: str + """ + return self._field_code + + @field_code.setter + def field_code(self, field_code): + """Sets the field_code of this FieldLink. + + Field code # noqa: E501 + + :param field_code: The field_code of this FieldLink. # noqa: E501 + :type: str + """ + self._field_code = field_code + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FieldLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/field_names.py b/asposewordscloud/models/field_names.py new file mode 100644 index 00000000..455e8ad6 --- /dev/null +++ b/asposewordscloud/models/field_names.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FieldNames(object): + """Represents a collection of merge fields within a document. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'names': 'list[str]' + } + + attribute_map = { + 'link': 'link', + 'names': 'Names' + } + + def __init__(self, link=None, names=None): # noqa: E501 + """FieldNames - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._names = None + self.discriminator = None + + if link is not None: + self.link = link + if names is not None: + self.names = names + + @property + def link(self): + """Gets the link of this FieldNames. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FieldNames. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FieldNames. + + Link to the document. # noqa: E501 + + :param link: The link of this FieldNames. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def names(self): + """Gets the names of this FieldNames. # noqa: E501 + + Collection of fields names. # noqa: E501 + + :return: The names of this FieldNames. # noqa: E501 + :rtype: list[str] + """ + return self._names + + @names.setter + def names(self, names): + """Sets the names of this FieldNames. + + Collection of fields names. # noqa: E501 + + :param names: The names of this FieldNames. # noqa: E501 + :type: list[str] + """ + self._names = names + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FieldNames): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/field_names_response.py b/asposewordscloud/models/field_names_response.py new file mode 100644 index 00000000..eeb16405 --- /dev/null +++ b/asposewordscloud/models/field_names_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FieldNamesResponse(object): + """This response should be returned by the service when handling: GET /{name}/mailMergeFieldNames. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'field_names': 'FieldNames' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'field_names': 'FieldNames' + } + + def __init__(self, code=None, status=None, field_names=None): # noqa: E501 + """FieldNamesResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._field_names = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if field_names is not None: + self.field_names = field_names + + @property + def code(self): + """Gets the code of this FieldNamesResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FieldNamesResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FieldNamesResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FieldNamesResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FieldNamesResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FieldNamesResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FieldNamesResponse. + + Response status. # noqa: E501 + + :param status: The status of this FieldNamesResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def field_names(self): + """Gets the field_names of this FieldNamesResponse. # noqa: E501 + + Collection of mail merge fields. # noqa: E501 + + :return: The field_names of this FieldNamesResponse. # noqa: E501 + :rtype: FieldNames + """ + return self._field_names + + @field_names.setter + def field_names(self, field_names): + """Sets the field_names of this FieldNamesResponse. + + Collection of mail merge fields. # noqa: E501 + + :param field_names: The field_names of this FieldNamesResponse. # noqa: E501 + :type: FieldNames + """ + self._field_names = field_names + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FieldNamesResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/field_response.py b/asposewordscloud/models/field_response.py new file mode 100644 index 00000000..8d68e24c --- /dev/null +++ b/asposewordscloud/models/field_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FieldResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/paragraphs/{0}/fields/{1} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'field': 'Field' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'field': 'Field' + } + + def __init__(self, code=None, status=None, field=None): # noqa: E501 + """FieldResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._field = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if field is not None: + self.field = field + + @property + def code(self): + """Gets the code of this FieldResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FieldResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FieldResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FieldResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FieldResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FieldResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FieldResponse. + + Response status. # noqa: E501 + + :param status: The status of this FieldResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def field(self): + """Gets the field of this FieldResponse. # noqa: E501 + + Field information # noqa: E501 + + :return: The field of this FieldResponse. # noqa: E501 + :rtype: Field + """ + return self._field + + @field.setter + def field(self, field): + """Sets the field of this FieldResponse. + + Field information # noqa: E501 + + :param field: The field of this FieldResponse. # noqa: E501 + :type: Field + """ + self._field = field + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FieldResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/fields_response.py b/asposewordscloud/models/fields_response.py new file mode 100644 index 00000000..30c374ba --- /dev/null +++ b/asposewordscloud/models/fields_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FieldsResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/{nodePath}/fields + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'fields': 'FieldCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'fields': 'Fields' + } + + def __init__(self, code=None, status=None, fields=None): # noqa: E501 + """FieldsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._fields = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if fields is not None: + self.fields = fields + + @property + def code(self): + """Gets the code of this FieldsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FieldsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FieldsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FieldsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FieldsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FieldsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FieldsResponse. + + Response status. # noqa: E501 + + :param status: The status of this FieldsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def fields(self): + """Gets the fields of this FieldsResponse. # noqa: E501 + + Collection of fields. # noqa: E501 + + :return: The fields of this FieldsResponse. # noqa: E501 + :rtype: FieldCollection + """ + return self._fields + + @fields.setter + def fields(self, fields): + """Sets the fields of this FieldsResponse. + + Collection of fields. # noqa: E501 + + :param fields: The fields of this FieldsResponse. # noqa: E501 + :type: FieldCollection + """ + self._fields = fields + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FieldsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/file_link.py b/asposewordscloud/models/file_link.py new file mode 100644 index 00000000..2aa18986 --- /dev/null +++ b/asposewordscloud/models/file_link.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FileLink(object): + """Provides information for the file link. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'href': 'str', + 'rel': 'str', + 'type': 'str', + 'title': 'str' + } + + attribute_map = { + 'href': 'Href', + 'rel': 'Rel', + 'type': 'Type', + 'title': 'Title' + } + + def __init__(self, href=None, rel=None, type=None, title=None): # noqa: E501 + """FileLink - a model defined in Swagger""" # noqa: E501 + + self._href = None + self._rel = None + self._type = None + self._title = None + self.discriminator = None + + if href is not None: + self.href = href + if rel is not None: + self.rel = rel + if type is not None: + self.type = type + if title is not None: + self.title = title + + @property + def href(self): + """Gets the href of this FileLink. # noqa: E501 + + The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference # noqa: E501 + + :return: The href of this FileLink. # noqa: E501 + :rtype: str + """ + return self._href + + @href.setter + def href(self, href): + """Sets the href of this FileLink. + + The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference # noqa: E501 + + :param href: The href of this FileLink. # noqa: E501 + :type: str + """ + self._href = href + @property + def rel(self): + """Gets the rel of this FileLink. # noqa: E501 + + atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". # noqa: E501 + + :return: The rel of this FileLink. # noqa: E501 + :rtype: str + """ + return self._rel + + @rel.setter + def rel(self, rel): + """Sets the rel of this FileLink. + + atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". # noqa: E501 + + :param rel: The rel of this FileLink. # noqa: E501 + :type: str + """ + self._rel = rel + @property + def type(self): + """Gets the type of this FileLink. # noqa: E501 + + On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. # noqa: E501 + + :return: The type of this FileLink. # noqa: E501 + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """Sets the type of this FileLink. + + On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. # noqa: E501 + + :param type: The type of this FileLink. # noqa: E501 + :type: str + """ + self._type = type + @property + def title(self): + """Gets the title of this FileLink. # noqa: E501 + + The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. # noqa: E501 + + :return: The title of this FileLink. # noqa: E501 + :rtype: str + """ + return self._title + + @title.setter + def title(self, title): + """Sets the title of this FileLink. + + The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. # noqa: E501 + + :param title: The title of this FileLink. # noqa: E501 + :type: str + """ + self._title = title + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FileLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/fixed_page_save_options_data.py b/asposewordscloud/models/fixed_page_save_options_data.py new file mode 100644 index 00000000..29da2731 --- /dev/null +++ b/asposewordscloud/models/fixed_page_save_options_data.py @@ -0,0 +1,486 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FixedPageSaveOptionsData(object): + """Contains common options that can be specified when saving a document into fixed page formats (PDF, XPS, images etc). + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None): # noqa: E501 + """FixedPageSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + + @property + def color_mode(self): + """Gets the color_mode of this FixedPageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this FixedPageSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this FixedPageSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this FixedPageSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this FixedPageSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this FixedPageSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this FixedPageSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this FixedPageSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this FixedPageSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this FixedPageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this FixedPageSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this FixedPageSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this FixedPageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this FixedPageSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this FixedPageSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this FixedPageSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this FixedPageSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this FixedPageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this FixedPageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this FixedPageSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this FixedPageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this FixedPageSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this FixedPageSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this FixedPageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this FixedPageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this FixedPageSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this FixedPageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this FixedPageSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this FixedPageSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this FixedPageSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this FixedPageSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this FixedPageSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this FixedPageSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this FixedPageSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this FixedPageSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this FixedPageSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this FixedPageSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this FixedPageSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this FixedPageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this FixedPageSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this FixedPageSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this FixedPageSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this FixedPageSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this FixedPageSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this FixedPageSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this FixedPageSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FixedPageSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/font.py b/asposewordscloud/models/font.py new file mode 100644 index 00000000..36276444 --- /dev/null +++ b/asposewordscloud/models/font.py @@ -0,0 +1,1186 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Font(object): + """Font element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'all_caps': 'bool', + 'bidi': 'bool', + 'bold': 'bool', + 'bold_bi': 'bool', + 'border': 'Border', + 'color': 'XmlColor', + 'complex_script': 'bool', + 'double_strike_through': 'bool', + 'emboss': 'bool', + 'engrave': 'bool', + 'hidden': 'bool', + 'highlight_color': 'XmlColor', + 'italic': 'bool', + 'italic_bi': 'bool', + 'kerning': 'float', + 'locale_id': 'int', + 'locale_id_bi': 'int', + 'locale_id_far_east': 'int', + 'name': 'str', + 'name_ascii': 'str', + 'name_bi': 'str', + 'name_far_east': 'str', + 'name_other': 'str', + 'no_proofing': 'bool', + 'outline': 'bool', + 'position': 'float', + 'scaling': 'int', + 'shadow': 'bool', + 'size': 'float', + 'size_bi': 'float', + 'small_caps': 'bool', + 'spacing': 'float', + 'strike_through': 'bool', + 'style_identifier': 'str', + 'style_name': 'str', + 'subscript': 'bool', + 'superscript': 'bool', + 'text_effect': 'str', + 'underline': 'str', + 'underline_color': 'XmlColor' + } + + attribute_map = { + 'link': 'link', + 'all_caps': 'AllCaps', + 'bidi': 'Bidi', + 'bold': 'Bold', + 'bold_bi': 'BoldBi', + 'border': 'Border', + 'color': 'Color', + 'complex_script': 'ComplexScript', + 'double_strike_through': 'DoubleStrikeThrough', + 'emboss': 'Emboss', + 'engrave': 'Engrave', + 'hidden': 'Hidden', + 'highlight_color': 'HighlightColor', + 'italic': 'Italic', + 'italic_bi': 'ItalicBi', + 'kerning': 'Kerning', + 'locale_id': 'LocaleId', + 'locale_id_bi': 'LocaleIdBi', + 'locale_id_far_east': 'LocaleIdFarEast', + 'name': 'Name', + 'name_ascii': 'NameAscii', + 'name_bi': 'NameBi', + 'name_far_east': 'NameFarEast', + 'name_other': 'NameOther', + 'no_proofing': 'NoProofing', + 'outline': 'Outline', + 'position': 'Position', + 'scaling': 'Scaling', + 'shadow': 'Shadow', + 'size': 'Size', + 'size_bi': 'SizeBi', + 'small_caps': 'SmallCaps', + 'spacing': 'Spacing', + 'strike_through': 'StrikeThrough', + 'style_identifier': 'StyleIdentifier', + 'style_name': 'StyleName', + 'subscript': 'Subscript', + 'superscript': 'Superscript', + 'text_effect': 'TextEffect', + 'underline': 'Underline', + 'underline_color': 'UnderlineColor' + } + + def __init__(self, link=None, all_caps=None, bidi=None, bold=None, bold_bi=None, border=None, color=None, complex_script=None, double_strike_through=None, emboss=None, engrave=None, hidden=None, highlight_color=None, italic=None, italic_bi=None, kerning=None, locale_id=None, locale_id_bi=None, locale_id_far_east=None, name=None, name_ascii=None, name_bi=None, name_far_east=None, name_other=None, no_proofing=None, outline=None, position=None, scaling=None, shadow=None, size=None, size_bi=None, small_caps=None, spacing=None, strike_through=None, style_identifier=None, style_name=None, subscript=None, superscript=None, text_effect=None, underline=None, underline_color=None): # noqa: E501 + """Font - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._all_caps = None + self._bidi = None + self._bold = None + self._bold_bi = None + self._border = None + self._color = None + self._complex_script = None + self._double_strike_through = None + self._emboss = None + self._engrave = None + self._hidden = None + self._highlight_color = None + self._italic = None + self._italic_bi = None + self._kerning = None + self._locale_id = None + self._locale_id_bi = None + self._locale_id_far_east = None + self._name = None + self._name_ascii = None + self._name_bi = None + self._name_far_east = None + self._name_other = None + self._no_proofing = None + self._outline = None + self._position = None + self._scaling = None + self._shadow = None + self._size = None + self._size_bi = None + self._small_caps = None + self._spacing = None + self._strike_through = None + self._style_identifier = None + self._style_name = None + self._subscript = None + self._superscript = None + self._text_effect = None + self._underline = None + self._underline_color = None + self.discriminator = None + + if link is not None: + self.link = link + if all_caps is not None: + self.all_caps = all_caps + if bidi is not None: + self.bidi = bidi + if bold is not None: + self.bold = bold + if bold_bi is not None: + self.bold_bi = bold_bi + if border is not None: + self.border = border + if color is not None: + self.color = color + if complex_script is not None: + self.complex_script = complex_script + if double_strike_through is not None: + self.double_strike_through = double_strike_through + if emboss is not None: + self.emboss = emboss + if engrave is not None: + self.engrave = engrave + if hidden is not None: + self.hidden = hidden + if highlight_color is not None: + self.highlight_color = highlight_color + if italic is not None: + self.italic = italic + if italic_bi is not None: + self.italic_bi = italic_bi + if kerning is not None: + self.kerning = kerning + if locale_id is not None: + self.locale_id = locale_id + if locale_id_bi is not None: + self.locale_id_bi = locale_id_bi + if locale_id_far_east is not None: + self.locale_id_far_east = locale_id_far_east + if name is not None: + self.name = name + if name_ascii is not None: + self.name_ascii = name_ascii + if name_bi is not None: + self.name_bi = name_bi + if name_far_east is not None: + self.name_far_east = name_far_east + if name_other is not None: + self.name_other = name_other + if no_proofing is not None: + self.no_proofing = no_proofing + if outline is not None: + self.outline = outline + if position is not None: + self.position = position + if scaling is not None: + self.scaling = scaling + if shadow is not None: + self.shadow = shadow + if size is not None: + self.size = size + if size_bi is not None: + self.size_bi = size_bi + if small_caps is not None: + self.small_caps = small_caps + if spacing is not None: + self.spacing = spacing + if strike_through is not None: + self.strike_through = strike_through + if style_identifier is not None: + self.style_identifier = style_identifier + if style_name is not None: + self.style_name = style_name + if subscript is not None: + self.subscript = subscript + if superscript is not None: + self.superscript = superscript + if text_effect is not None: + self.text_effect = text_effect + if underline is not None: + self.underline = underline + if underline_color is not None: + self.underline_color = underline_color + + @property + def link(self): + """Gets the link of this Font. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Font. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Font. + + Link to the document. # noqa: E501 + + :param link: The link of this Font. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def all_caps(self): + """Gets the all_caps of this Font. # noqa: E501 + + True if the font is formatted as all capital letters. # noqa: E501 + + :return: The all_caps of this Font. # noqa: E501 + :rtype: bool + """ + return self._all_caps + + @all_caps.setter + def all_caps(self, all_caps): + """Sets the all_caps of this Font. + + True if the font is formatted as all capital letters. # noqa: E501 + + :param all_caps: The all_caps of this Font. # noqa: E501 + :type: bool + """ + self._all_caps = all_caps + @property + def bidi(self): + """Gets the bidi of this Font. # noqa: E501 + + Specifies whether the contents of this run shall have right-to-left characteristics. # noqa: E501 + + :return: The bidi of this Font. # noqa: E501 + :rtype: bool + """ + return self._bidi + + @bidi.setter + def bidi(self, bidi): + """Sets the bidi of this Font. + + Specifies whether the contents of this run shall have right-to-left characteristics. # noqa: E501 + + :param bidi: The bidi of this Font. # noqa: E501 + :type: bool + """ + self._bidi = bidi + @property + def bold(self): + """Gets the bold of this Font. # noqa: E501 + + True if the font is formatted as bold. # noqa: E501 + + :return: The bold of this Font. # noqa: E501 + :rtype: bool + """ + return self._bold + + @bold.setter + def bold(self, bold): + """Sets the bold of this Font. + + True if the font is formatted as bold. # noqa: E501 + + :param bold: The bold of this Font. # noqa: E501 + :type: bool + """ + self._bold = bold + @property + def bold_bi(self): + """Gets the bold_bi of this Font. # noqa: E501 + + True if the right-to-left text is formatted as bold. # noqa: E501 + + :return: The bold_bi of this Font. # noqa: E501 + :rtype: bool + """ + return self._bold_bi + + @bold_bi.setter + def bold_bi(self, bold_bi): + """Sets the bold_bi of this Font. + + True if the right-to-left text is formatted as bold. # noqa: E501 + + :param bold_bi: The bold_bi of this Font. # noqa: E501 + :type: bool + """ + self._bold_bi = bold_bi + @property + def border(self): + """Gets the border of this Font. # noqa: E501 + + Border object that specifies border for the font. # noqa: E501 + + :return: The border of this Font. # noqa: E501 + :rtype: Border + """ + return self._border + + @border.setter + def border(self, border): + """Sets the border of this Font. + + Border object that specifies border for the font. # noqa: E501 + + :param border: The border of this Font. # noqa: E501 + :type: Border + """ + self._border = border + @property + def color(self): + """Gets the color of this Font. # noqa: E501 + + Gets or sets the color of the font. # noqa: E501 + + :return: The color of this Font. # noqa: E501 + :rtype: XmlColor + """ + return self._color + + @color.setter + def color(self, color): + """Sets the color of this Font. + + Gets or sets the color of the font. # noqa: E501 + + :param color: The color of this Font. # noqa: E501 + :type: XmlColor + """ + self._color = color + @property + def complex_script(self): + """Gets the complex_script of this Font. # noqa: E501 + + Specifies whether the contents of this run shall be treated as complex script text regardless of their Unicode character values when determining the formatting for this run. # noqa: E501 + + :return: The complex_script of this Font. # noqa: E501 + :rtype: bool + """ + return self._complex_script + + @complex_script.setter + def complex_script(self, complex_script): + """Sets the complex_script of this Font. + + Specifies whether the contents of this run shall be treated as complex script text regardless of their Unicode character values when determining the formatting for this run. # noqa: E501 + + :param complex_script: The complex_script of this Font. # noqa: E501 + :type: bool + """ + self._complex_script = complex_script + @property + def double_strike_through(self): + """Gets the double_strike_through of this Font. # noqa: E501 + + True if the font is formatted as double strikethrough text. # noqa: E501 + + :return: The double_strike_through of this Font. # noqa: E501 + :rtype: bool + """ + return self._double_strike_through + + @double_strike_through.setter + def double_strike_through(self, double_strike_through): + """Sets the double_strike_through of this Font. + + True if the font is formatted as double strikethrough text. # noqa: E501 + + :param double_strike_through: The double_strike_through of this Font. # noqa: E501 + :type: bool + """ + self._double_strike_through = double_strike_through + @property + def emboss(self): + """Gets the emboss of this Font. # noqa: E501 + + True if the font is formatted as embossed. # noqa: E501 + + :return: The emboss of this Font. # noqa: E501 + :rtype: bool + """ + return self._emboss + + @emboss.setter + def emboss(self, emboss): + """Sets the emboss of this Font. + + True if the font is formatted as embossed. # noqa: E501 + + :param emboss: The emboss of this Font. # noqa: E501 + :type: bool + """ + self._emboss = emboss + @property + def engrave(self): + """Gets the engrave of this Font. # noqa: E501 + + True if the font is formatted as engraved. # noqa: E501 + + :return: The engrave of this Font. # noqa: E501 + :rtype: bool + """ + return self._engrave + + @engrave.setter + def engrave(self, engrave): + """Sets the engrave of this Font. + + True if the font is formatted as engraved. # noqa: E501 + + :param engrave: The engrave of this Font. # noqa: E501 + :type: bool + """ + self._engrave = engrave + @property + def hidden(self): + """Gets the hidden of this Font. # noqa: E501 + + True if the font is formatted as hidden text. # noqa: E501 + + :return: The hidden of this Font. # noqa: E501 + :rtype: bool + """ + return self._hidden + + @hidden.setter + def hidden(self, hidden): + """Sets the hidden of this Font. + + True if the font is formatted as hidden text. # noqa: E501 + + :param hidden: The hidden of this Font. # noqa: E501 + :type: bool + """ + self._hidden = hidden + @property + def highlight_color(self): + """Gets the highlight_color of this Font. # noqa: E501 + + Gets or sets the highlight (marker) color. # noqa: E501 + + :return: The highlight_color of this Font. # noqa: E501 + :rtype: XmlColor + """ + return self._highlight_color + + @highlight_color.setter + def highlight_color(self, highlight_color): + """Sets the highlight_color of this Font. + + Gets or sets the highlight (marker) color. # noqa: E501 + + :param highlight_color: The highlight_color of this Font. # noqa: E501 + :type: XmlColor + """ + self._highlight_color = highlight_color + @property + def italic(self): + """Gets the italic of this Font. # noqa: E501 + + True if the font is formatted as italic. # noqa: E501 + + :return: The italic of this Font. # noqa: E501 + :rtype: bool + """ + return self._italic + + @italic.setter + def italic(self, italic): + """Sets the italic of this Font. + + True if the font is formatted as italic. # noqa: E501 + + :param italic: The italic of this Font. # noqa: E501 + :type: bool + """ + self._italic = italic + @property + def italic_bi(self): + """Gets the italic_bi of this Font. # noqa: E501 + + True if the right-to-left text is formatted as italic. # noqa: E501 + + :return: The italic_bi of this Font. # noqa: E501 + :rtype: bool + """ + return self._italic_bi + + @italic_bi.setter + def italic_bi(self, italic_bi): + """Sets the italic_bi of this Font. + + True if the right-to-left text is formatted as italic. # noqa: E501 + + :param italic_bi: The italic_bi of this Font. # noqa: E501 + :type: bool + """ + self._italic_bi = italic_bi + @property + def kerning(self): + """Gets the kerning of this Font. # noqa: E501 + + Gets or sets the font size at which kerning starts. # noqa: E501 + + :return: The kerning of this Font. # noqa: E501 + :rtype: float + """ + return self._kerning + + @kerning.setter + def kerning(self, kerning): + """Sets the kerning of this Font. + + Gets or sets the font size at which kerning starts. # noqa: E501 + + :param kerning: The kerning of this Font. # noqa: E501 + :type: float + """ + self._kerning = kerning + @property + def locale_id(self): + """Gets the locale_id of this Font. # noqa: E501 + + Gets or sets the locale identifier (language) of the formatted characters. # noqa: E501 + + :return: The locale_id of this Font. # noqa: E501 + :rtype: int + """ + return self._locale_id + + @locale_id.setter + def locale_id(self, locale_id): + """Sets the locale_id of this Font. + + Gets or sets the locale identifier (language) of the formatted characters. # noqa: E501 + + :param locale_id: The locale_id of this Font. # noqa: E501 + :type: int + """ + self._locale_id = locale_id + @property + def locale_id_bi(self): + """Gets the locale_id_bi of this Font. # noqa: E501 + + Gets or sets the locale identifier (language) of the formatted right-to-left characters. # noqa: E501 + + :return: The locale_id_bi of this Font. # noqa: E501 + :rtype: int + """ + return self._locale_id_bi + + @locale_id_bi.setter + def locale_id_bi(self, locale_id_bi): + """Sets the locale_id_bi of this Font. + + Gets or sets the locale identifier (language) of the formatted right-to-left characters. # noqa: E501 + + :param locale_id_bi: The locale_id_bi of this Font. # noqa: E501 + :type: int + """ + self._locale_id_bi = locale_id_bi + @property + def locale_id_far_east(self): + """Gets the locale_id_far_east of this Font. # noqa: E501 + + Gets or sets the locale identifier (language) of the formatted Asian characters. # noqa: E501 + + :return: The locale_id_far_east of this Font. # noqa: E501 + :rtype: int + """ + return self._locale_id_far_east + + @locale_id_far_east.setter + def locale_id_far_east(self, locale_id_far_east): + """Sets the locale_id_far_east of this Font. + + Gets or sets the locale identifier (language) of the formatted Asian characters. # noqa: E501 + + :param locale_id_far_east: The locale_id_far_east of this Font. # noqa: E501 + :type: int + """ + self._locale_id_far_east = locale_id_far_east + @property + def name(self): + """Gets the name of this Font. # noqa: E501 + + Gets or sets the name of the font # noqa: E501 + + :return: The name of this Font. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this Font. + + Gets or sets the name of the font # noqa: E501 + + :param name: The name of this Font. # noqa: E501 + :type: str + """ + self._name = name + @property + def name_ascii(self): + """Gets the name_ascii of this Font. # noqa: E501 + + Returns or sets the font used for Latin text (characters with character codes from 0 (zero) through 127). # noqa: E501 + + :return: The name_ascii of this Font. # noqa: E501 + :rtype: str + """ + return self._name_ascii + + @name_ascii.setter + def name_ascii(self, name_ascii): + """Sets the name_ascii of this Font. + + Returns or sets the font used for Latin text (characters with character codes from 0 (zero) through 127). # noqa: E501 + + :param name_ascii: The name_ascii of this Font. # noqa: E501 + :type: str + """ + self._name_ascii = name_ascii + @property + def name_bi(self): + """Gets the name_bi of this Font. # noqa: E501 + + Returns or sets the name of the font in a right-to-left language document. # noqa: E501 + + :return: The name_bi of this Font. # noqa: E501 + :rtype: str + """ + return self._name_bi + + @name_bi.setter + def name_bi(self, name_bi): + """Sets the name_bi of this Font. + + Returns or sets the name of the font in a right-to-left language document. # noqa: E501 + + :param name_bi: The name_bi of this Font. # noqa: E501 + :type: str + """ + self._name_bi = name_bi + @property + def name_far_east(self): + """Gets the name_far_east of this Font. # noqa: E501 + + Returns or sets an East Asian font name. # noqa: E501 + + :return: The name_far_east of this Font. # noqa: E501 + :rtype: str + """ + return self._name_far_east + + @name_far_east.setter + def name_far_east(self, name_far_east): + """Sets the name_far_east of this Font. + + Returns or sets an East Asian font name. # noqa: E501 + + :param name_far_east: The name_far_east of this Font. # noqa: E501 + :type: str + """ + self._name_far_east = name_far_east + @property + def name_other(self): + """Gets the name_other of this Font. # noqa: E501 + + Returns or sets the font used for characters with character codes from 128 through 255. # noqa: E501 + + :return: The name_other of this Font. # noqa: E501 + :rtype: str + """ + return self._name_other + + @name_other.setter + def name_other(self, name_other): + """Sets the name_other of this Font. + + Returns or sets the font used for characters with character codes from 128 through 255. # noqa: E501 + + :param name_other: The name_other of this Font. # noqa: E501 + :type: str + """ + self._name_other = name_other + @property + def no_proofing(self): + """Gets the no_proofing of this Font. # noqa: E501 + + True when the formatted characters are not to be spell checked. # noqa: E501 + + :return: The no_proofing of this Font. # noqa: E501 + :rtype: bool + """ + return self._no_proofing + + @no_proofing.setter + def no_proofing(self, no_proofing): + """Sets the no_proofing of this Font. + + True when the formatted characters are not to be spell checked. # noqa: E501 + + :param no_proofing: The no_proofing of this Font. # noqa: E501 + :type: bool + """ + self._no_proofing = no_proofing + @property + def outline(self): + """Gets the outline of this Font. # noqa: E501 + + True if the font is formatted as outline. # noqa: E501 + + :return: The outline of this Font. # noqa: E501 + :rtype: bool + """ + return self._outline + + @outline.setter + def outline(self, outline): + """Sets the outline of this Font. + + True if the font is formatted as outline. # noqa: E501 + + :param outline: The outline of this Font. # noqa: E501 + :type: bool + """ + self._outline = outline + @property + def position(self): + """Gets the position of this Font. # noqa: E501 + + Gets or sets the position of text (in points) relative to the base line. A positive number raises the text, and a negative number lowers it. # noqa: E501 + + :return: The position of this Font. # noqa: E501 + :rtype: float + """ + return self._position + + @position.setter + def position(self, position): + """Sets the position of this Font. + + Gets or sets the position of text (in points) relative to the base line. A positive number raises the text, and a negative number lowers it. # noqa: E501 + + :param position: The position of this Font. # noqa: E501 + :type: float + """ + self._position = position + @property + def scaling(self): + """Gets the scaling of this Font. # noqa: E501 + + Gets or sets character width scaling in percent. # noqa: E501 + + :return: The scaling of this Font. # noqa: E501 + :rtype: int + """ + return self._scaling + + @scaling.setter + def scaling(self, scaling): + """Sets the scaling of this Font. + + Gets or sets character width scaling in percent. # noqa: E501 + + :param scaling: The scaling of this Font. # noqa: E501 + :type: int + """ + self._scaling = scaling + @property + def shadow(self): + """Gets the shadow of this Font. # noqa: E501 + + True if the font is formatted as shadowed. # noqa: E501 + + :return: The shadow of this Font. # noqa: E501 + :rtype: bool + """ + return self._shadow + + @shadow.setter + def shadow(self, shadow): + """Sets the shadow of this Font. + + True if the font is formatted as shadowed. # noqa: E501 + + :param shadow: The shadow of this Font. # noqa: E501 + :type: bool + """ + self._shadow = shadow + @property + def size(self): + """Gets the size of this Font. # noqa: E501 + + Gets or sets the font size in points. # noqa: E501 + + :return: The size of this Font. # noqa: E501 + :rtype: float + """ + return self._size + + @size.setter + def size(self, size): + """Sets the size of this Font. + + Gets or sets the font size in points. # noqa: E501 + + :param size: The size of this Font. # noqa: E501 + :type: float + """ + self._size = size + @property + def size_bi(self): + """Gets the size_bi of this Font. # noqa: E501 + + Gets or sets the font size in points used in a right-to-left document. # noqa: E501 + + :return: The size_bi of this Font. # noqa: E501 + :rtype: float + """ + return self._size_bi + + @size_bi.setter + def size_bi(self, size_bi): + """Sets the size_bi of this Font. + + Gets or sets the font size in points used in a right-to-left document. # noqa: E501 + + :param size_bi: The size_bi of this Font. # noqa: E501 + :type: float + """ + self._size_bi = size_bi + @property + def small_caps(self): + """Gets the small_caps of this Font. # noqa: E501 + + True if the font is formatted as small capital letters. # noqa: E501 + + :return: The small_caps of this Font. # noqa: E501 + :rtype: bool + """ + return self._small_caps + + @small_caps.setter + def small_caps(self, small_caps): + """Sets the small_caps of this Font. + + True if the font is formatted as small capital letters. # noqa: E501 + + :param small_caps: The small_caps of this Font. # noqa: E501 + :type: bool + """ + self._small_caps = small_caps + @property + def spacing(self): + """Gets the spacing of this Font. # noqa: E501 + + Returns or sets the spacing (in points) between characters. # noqa: E501 + + :return: The spacing of this Font. # noqa: E501 + :rtype: float + """ + return self._spacing + + @spacing.setter + def spacing(self, spacing): + """Sets the spacing of this Font. + + Returns or sets the spacing (in points) between characters. # noqa: E501 + + :param spacing: The spacing of this Font. # noqa: E501 + :type: float + """ + self._spacing = spacing + @property + def strike_through(self): + """Gets the strike_through of this Font. # noqa: E501 + + True if the font is formatted as strikethrough text. # noqa: E501 + + :return: The strike_through of this Font. # noqa: E501 + :rtype: bool + """ + return self._strike_through + + @strike_through.setter + def strike_through(self, strike_through): + """Sets the strike_through of this Font. + + True if the font is formatted as strikethrough text. # noqa: E501 + + :param strike_through: The strike_through of this Font. # noqa: E501 + :type: bool + """ + self._strike_through = strike_through + @property + def style_identifier(self): + """Gets the style_identifier of this Font. # noqa: E501 + + Gets or sets the locale independent style identifier of the character style applied to this formatting. # noqa: E501 + + :return: The style_identifier of this Font. # noqa: E501 + :rtype: str + """ + return self._style_identifier + + @style_identifier.setter + def style_identifier(self, style_identifier): + """Sets the style_identifier of this Font. + + Gets or sets the locale independent style identifier of the character style applied to this formatting. # noqa: E501 + + :param style_identifier: The style_identifier of this Font. # noqa: E501 + :type: str + """ + allowed_values = ["Normal", "Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8", "Heading9", "Index1", "Index2", "Index3", "Index4", "Index5", "Index6", "Index7", "Index8", "Index9", "Toc1", "Toc2", "Toc3", "Toc4", "Toc5", "Toc6", "Toc7", "Toc8", "Toc9", "NormalIndent", "FootnoteText", "CommentText", "Header", "Footer", "IndexHeading", "Caption", "TableOfFigures", "EnvelopeAddress", "EnvelopeReturn", "FootnoteReference", "CommentReference", "LineNumber", "PageNumber", "EndnoteReference", "EndnoteText", "TableOfAuthorities", "Macro", "ToaHeading", "List", "ListBullet", "ListNumber", "List2", "List3", "List4", "List5", "ListBullet2", "ListBullet3", "ListBullet4", "ListBullet5", "ListNumber2", "ListNumber3", "ListNumber4", "ListNumber5", "Title", "Closing", "Signature", "DefaultParagraphFont", "BodyText", "BodyTextInd", "ListContinue", "ListContinue2", "ListContinue3", "ListContinue4", "ListContinue5", "MessageHeader", "Subtitle", "Salutation", "Date", "BodyText1I", "BodyText1I2", "NoteHeading", "BodyText2", "BodyText3", "BodyTextInd2", "BodyTextInd3", "BlockText", "Hyperlink", "FollowedHyperlink", "Strong", "Emphasis", "DocumentMap", "PlainText", "EmailSignature", "HtmlTopOfForm", "HtmlBottomOfForm", "NormalWeb", "HtmlAcronym", "HtmlAddress", "HtmlCite", "HtmlCode", "HtmlDefinition", "HtmlKeyboard", "HtmlPreformatted", "HtmlSample", "HtmlTypewriter", "HtmlVariable", "TableNormal", "CommentSubject", "NoList", "OutlineList1", "OutlineList2", "OutlineList3", "TableSimple1", "TableSimple2", "TableSimple3", "TableClassic1", "TableClassic2", "TableClassic3", "TableClassic4", "TableColorful1", "TableColorful2", "TableColorful3", "TableColumns1", "TableColumns2", "TableColumns3", "TableColumns4", "TableColumns5", "TableGrid1", "TableGrid2", "TableGrid3", "TableGrid4", "TableGrid5", "TableGrid6", "TableGrid7", "TableGrid8", "TableList1", "TableList2", "TableList3", "TableList4", "TableList5", "TableList6", "TableList7", "TableList8", "Table3DEffects1", "Table3DEffects2", "Table3DEffects3", "TableContemporary", "TableElegant", "TableProfessional", "TableSubtle1", "TableSubtle2", "TableWeb1", "TableWeb2", "TableWeb3", "BalloonText", "TableGrid", "TableTheme", "PlaceholderText", "NoSpacing", "LightShading", "LightList", "LightGrid", "MediumShading1", "MediumShading2", "MediumList1", "MediumList2", "MediumGrid1", "MediumGrid2", "MediumGrid3", "DarkList", "ColorfulShading", "ColorfulList", "ColorfulGrid", "LightShadingAccent1", "LightListAccent1", "LightGridAccent1", "MediumShading1Accent1", "MediumShading2Accent1", "MediumList1Accent1", "Revision", "ListParagraph", "Quote", "IntenseQuote", "MediumList2Accent1", "MediumGrid1Accent1", "MediumGrid2Accent1", "MediumGrid3Accent1", "DarkListAccent1", "ColorfulShadingAccent1", "ColorfulListAccent1", "ColorfulGridAccent1", "LightShadingAccent2", "LightListAccent2", "LightGridAccent2", "MediumShading1Accent2", "MediumShading2Accent2", "MediumList1Accent2", "MediumList2Accent2", "MediumGrid1Accent2", "MediumGrid2Accent2", "MediumGrid3Accent2", "DarkListAccent2", "ColorfulShadingAccent2", "ColorfulListAccent2", "ColorfulGridAccent2", "LightShadingAccent3", "LightListAccent3", "LightGridAccent3", "MediumShading1Accent3", "MediumShading2Accent3", "MediumList1Accent3", "MediumList2Accent3", "MediumGrid1Accent3", "MediumGrid2Accent3", "MediumGrid3Accent3", "DarkListAccent3", "ColorfulShadingAccent3", "ColorfulListAccent3", "ColorfulGridAccent3", "LightShadingAccent4", "LightListAccent4", "LightGridAccent4", "MediumShading1Accent4", "MediumShading2Accent4", "MediumList1Accent4", "MediumList2Accent4", "MediumGrid1Accent4", "MediumGrid2Accent4", "MediumGrid3Accent4", "DarkListAccent4", "ColorfulShadingAccent4", "ColorfulListAccent4", "ColorfulGridAccent4", "LightShadingAccent5", "LightListAccent5", "LightGridAccent5", "MediumShading1Accent5", "MediumShading2Accent5", "MediumList1Accent5", "MediumList2Accent5", "MediumGrid1Accent5", "MediumGrid2Accent5", "MediumGrid3Accent5", "DarkListAccent5", "ColorfulShadingAccent5", "ColorfulListAccent5", "ColorfulGridAccent5", "LightShadingAccent6", "LightListAccent6", "LightGridAccent6", "MediumShading1Accent6", "MediumShading2Accent6", "MediumList1Accent6", "MediumList2Accent6", "MediumGrid1Accent6", "MediumGrid2Accent6", "MediumGrid3Accent6", "DarkListAccent6", "ColorfulShadingAccent6", "ColorfulListAccent6", "ColorfulGridAccent6", "SubtleEmphasis", "IntenseEmphasis", "SubtleReference", "IntenseReference", "BookTitle", "Bibliography", "TocHeading", "PlainTable1", "PlainTable2", "PlainTable3", "PlainTable4", "PlainTable5", "TableGridLight", "GridTable1Light", "GridTable2", "GridTable3", "GridTable4", "GridTable5Dark", "GridTable6Colorful", "GridTable7Colorful", "GridTable1LightAccent1", "GridTable2Accent1", "GridTable3Accent1", "GridTable4Accent1", "GridTable5DarkAccent1", "GridTable6ColorfulAccent1", "GridTable7ColorfulAccent1", "GridTable1LightAccent2", "GridTable2Accent2", "GridTable3Accent2", "GridTable4Accent2", "GridTable5DarkAccent2", "GridTable6ColorfulAccent2", "GridTable7ColorfulAccent2", "GridTable1LightAccent3", "GridTable2Accent3", "GridTable3Accent3", "GridTable4Accent3", "GridTable5DarkAccent3", "GridTable6ColorfulAccent3", "GridTable7ColorfulAccent3", "GridTable1LightAccent4", "GridTable2Accent4", "GridTable3Accent4", "GridTable4Accent4", "GridTable5DarkAccent4", "GridTable6ColorfulAccent4", "GridTable7ColorfulAccent4", "GridTable1LightAccent5", "GridTable2Accent5", "GridTable3Accent5", "GridTable4Accent5", "GridTable5DarkAccent5", "GridTable6ColorfulAccent5", "GridTable7ColorfulAccent5", "GridTable1LightAccent6", "GridTable2Accent6", "GridTable3Accent6", "GridTable4Accent6", "GridTable5DarkAccent6", "GridTable6ColorfulAccent6", "GridTable7ColorfulAccent6", "ListTable1Light", "ListTable2", "ListTable3", "ListTable4", "ListTable5Dark", "ListTable6Colorful", "ListTable7Colorful", "ListTable1LightAccent1", "ListTable2Accent1", "ListTable3Accent1", "ListTable4Accent1", "ListTable5DarkAccent1", "ListTable6ColorfulAccent1", "ListTable7ColorfulAccent1", "ListTable1LightAccent2", "ListTable2Accent2", "ListTable3Accent2", "ListTable4Accent2", "ListTable5DarkAccent2", "ListTable6ColorfulAccent2", "ListTable7ColorfulAccent2", "ListTable1LightAccent3", "ListTable2Accent3", "ListTable3Accent3", "ListTable4Accent3", "ListTable5DarkAccent3", "ListTable6ColorfulAccent3", "ListTable7ColorfulAccent3", "ListTable1LightAccent4", "ListTable2Accent4", "ListTable3Accent4", "ListTable4Accent4", "ListTable5DarkAccent4", "ListTable6ColorfulAccent4", "ListTable7ColorfulAccent4", "ListTable1LightAccent5", "ListTable2Accent5", "ListTable3Accent5", "ListTable4Accent5", "ListTable5DarkAccent5", "ListTable6ColorfulAccent5", "ListTable7ColorfulAccent5", "ListTable1LightAccent6", "ListTable2Accent6", "ListTable3Accent6", "ListTable4Accent6", "ListTable5DarkAccent6", "ListTable6ColorfulAccent6", "ListTable7ColorfulAccent6", "User", "Nil"] # noqa: E501 + if not style_identifier.isdigit(): + if style_identifier not in allowed_values: + raise ValueError( + "Invalid value for `style_identifier` ({0}), must be one of {1}" # noqa: E501 + .format(style_identifier, allowed_values)) + self._style_identifier = style_identifier + else: + self._style_identifier = allowed_values[int(style_identifier) if six.PY3 else long(style_identifier)] + @property + def style_name(self): + """Gets the style_name of this Font. # noqa: E501 + + Gets or sets the name of the character style applied to this formatting. # noqa: E501 + + :return: The style_name of this Font. # noqa: E501 + :rtype: str + """ + return self._style_name + + @style_name.setter + def style_name(self, style_name): + """Sets the style_name of this Font. + + Gets or sets the name of the character style applied to this formatting. # noqa: E501 + + :param style_name: The style_name of this Font. # noqa: E501 + :type: str + """ + self._style_name = style_name + @property + def subscript(self): + """Gets the subscript of this Font. # noqa: E501 + + True if the font is formatted as subscript. # noqa: E501 + + :return: The subscript of this Font. # noqa: E501 + :rtype: bool + """ + return self._subscript + + @subscript.setter + def subscript(self, subscript): + """Sets the subscript of this Font. + + True if the font is formatted as subscript. # noqa: E501 + + :param subscript: The subscript of this Font. # noqa: E501 + :type: bool + """ + self._subscript = subscript + @property + def superscript(self): + """Gets the superscript of this Font. # noqa: E501 + + True if the font is formatted as superscript. # noqa: E501 + + :return: The superscript of this Font. # noqa: E501 + :rtype: bool + """ + return self._superscript + + @superscript.setter + def superscript(self, superscript): + """Sets the superscript of this Font. + + True if the font is formatted as superscript. # noqa: E501 + + :param superscript: The superscript of this Font. # noqa: E501 + :type: bool + """ + self._superscript = superscript + @property + def text_effect(self): + """Gets the text_effect of this Font. # noqa: E501 + + Gets or sets the font animation effect. # noqa: E501 + + :return: The text_effect of this Font. # noqa: E501 + :rtype: str + """ + return self._text_effect + + @text_effect.setter + def text_effect(self, text_effect): + """Sets the text_effect of this Font. + + Gets or sets the font animation effect. # noqa: E501 + + :param text_effect: The text_effect of this Font. # noqa: E501 + :type: str + """ + allowed_values = ["None", "LasVegasLights", "BlinkingBackground", "SparkleText", "MarchingBlackAnts", "MarchingRedAnts", "Shimmer"] # noqa: E501 + if not text_effect.isdigit(): + if text_effect not in allowed_values: + raise ValueError( + "Invalid value for `text_effect` ({0}), must be one of {1}" # noqa: E501 + .format(text_effect, allowed_values)) + self._text_effect = text_effect + else: + self._text_effect = allowed_values[int(text_effect) if six.PY3 else long(text_effect)] + @property + def underline(self): + """Gets the underline of this Font. # noqa: E501 + + Gets or sets the type of underline applied to the font. # noqa: E501 + + :return: The underline of this Font. # noqa: E501 + :rtype: str + """ + return self._underline + + @underline.setter + def underline(self, underline): + """Sets the underline of this Font. + + Gets or sets the type of underline applied to the font. # noqa: E501 + + :param underline: The underline of this Font. # noqa: E501 + :type: str + """ + allowed_values = ["None", "Single", "Words", "Double", "Dotted", "Thick", "Dash", "DotDash", "DotDotDash", "Wavy", "DottedHeavy", "DashHeavy", "DotDashHeavy", "DotDotDashHeavy", "WavyHeavy", "DashLong", "WavyDouble", "DashLongHeavy"] # noqa: E501 + if not underline.isdigit(): + if underline not in allowed_values: + raise ValueError( + "Invalid value for `underline` ({0}), must be one of {1}" # noqa: E501 + .format(underline, allowed_values)) + self._underline = underline + else: + self._underline = allowed_values[int(underline) if six.PY3 else long(underline)] + @property + def underline_color(self): + """Gets the underline_color of this Font. # noqa: E501 + + Gets or sets the color of the underline applied to the font. # noqa: E501 + + :return: The underline_color of this Font. # noqa: E501 + :rtype: XmlColor + """ + return self._underline_color + + @underline_color.setter + def underline_color(self, underline_color): + """Sets the underline_color of this Font. + + Gets or sets the color of the underline applied to the font. # noqa: E501 + + :param underline_color: The underline_color of this Font. # noqa: E501 + :type: XmlColor + """ + self._underline_color = underline_color + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Font): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/font_info.py b/asposewordscloud/models/font_info.py new file mode 100644 index 00000000..1e04bd1e --- /dev/null +++ b/asposewordscloud/models/font_info.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FontInfo(object): + """Font info + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'font_family_name': 'str', + 'full_font_name': 'str', + 'version': 'str', + 'file_path': 'str' + } + + attribute_map = { + 'font_family_name': 'FontFamilyName', + 'full_font_name': 'FullFontName', + 'version': 'Version', + 'file_path': 'FilePath' + } + + def __init__(self, font_family_name=None, full_font_name=None, version=None, file_path=None): # noqa: E501 + """FontInfo - a model defined in Swagger""" # noqa: E501 + + self._font_family_name = None + self._full_font_name = None + self._version = None + self._file_path = None + self.discriminator = None + + if font_family_name is not None: + self.font_family_name = font_family_name + if full_font_name is not None: + self.full_font_name = full_font_name + if version is not None: + self.version = version + if file_path is not None: + self.file_path = file_path + + @property + def font_family_name(self): + """Gets the font_family_name of this FontInfo. # noqa: E501 + + Family name of the font. # noqa: E501 + + :return: The font_family_name of this FontInfo. # noqa: E501 + :rtype: str + """ + return self._font_family_name + + @font_family_name.setter + def font_family_name(self, font_family_name): + """Sets the font_family_name of this FontInfo. + + Family name of the font. # noqa: E501 + + :param font_family_name: The font_family_name of this FontInfo. # noqa: E501 + :type: str + """ + self._font_family_name = font_family_name + @property + def full_font_name(self): + """Gets the full_font_name of this FontInfo. # noqa: E501 + + Full name of the font. # noqa: E501 + + :return: The full_font_name of this FontInfo. # noqa: E501 + :rtype: str + """ + return self._full_font_name + + @full_font_name.setter + def full_font_name(self, full_font_name): + """Sets the full_font_name of this FontInfo. + + Full name of the font. # noqa: E501 + + :param full_font_name: The full_font_name of this FontInfo. # noqa: E501 + :type: str + """ + self._full_font_name = full_font_name + @property + def version(self): + """Gets the version of this FontInfo. # noqa: E501 + + Version string of the font. # noqa: E501 + + :return: The version of this FontInfo. # noqa: E501 + :rtype: str + """ + return self._version + + @version.setter + def version(self, version): + """Sets the version of this FontInfo. + + Version string of the font. # noqa: E501 + + :param version: The version of this FontInfo. # noqa: E501 + :type: str + """ + self._version = version + @property + def file_path(self): + """Gets the file_path of this FontInfo. # noqa: E501 + + Path to the font file if any. # noqa: E501 + + :return: The file_path of this FontInfo. # noqa: E501 + :rtype: str + """ + return self._file_path + + @file_path.setter + def file_path(self, file_path): + """Sets the file_path of this FontInfo. + + Path to the font file if any. # noqa: E501 + + :param file_path: The file_path of this FontInfo. # noqa: E501 + :type: str + """ + self._file_path = file_path + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FontInfo): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/font_response.py b/asposewordscloud/models/font_response.py new file mode 100644 index 00000000..f70ffb85 --- /dev/null +++ b/asposewordscloud/models/font_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FontResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/paragraphs/{0}/runs/{1}/font + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'font': 'Font' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'font': 'Font' + } + + def __init__(self, code=None, status=None, font=None): # noqa: E501 + """FontResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._font = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if font is not None: + self.font = font + + @property + def code(self): + """Gets the code of this FontResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FontResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FontResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FontResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FontResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FontResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FontResponse. + + Response status. # noqa: E501 + + :param status: The status of this FontResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def font(self): + """Gets the font of this FontResponse. # noqa: E501 + + Font # noqa: E501 + + :return: The font of this FontResponse. # noqa: E501 + :rtype: Font + """ + return self._font + + @font.setter + def font(self, font): + """Sets the font of this FontResponse. + + Font # noqa: E501 + + :param font: The font of this FontResponse. # noqa: E501 + :type: Font + """ + self._font = font + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FontResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/footnote.py b/asposewordscloud/models/footnote.py new file mode 100644 index 00000000..7ea4d28a --- /dev/null +++ b/asposewordscloud/models/footnote.py @@ -0,0 +1,286 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Footnote(object): + """Footnote. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'content': 'StoryChildNodes', + 'footnote_type': 'str', + 'position': 'DocumentPosition', + 'reference_mark': 'str', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'content': 'Content', + 'footnote_type': 'FootnoteType', + 'position': 'Position', + 'reference_mark': 'ReferenceMark', + 'text': 'Text' + } + + def __init__(self, link=None, node_id=None, content=None, footnote_type=None, position=None, reference_mark=None, text=None): # noqa: E501 + """Footnote - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._content = None + self._footnote_type = None + self._position = None + self._reference_mark = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if content is not None: + self.content = content + if footnote_type is not None: + self.footnote_type = footnote_type + if position is not None: + self.position = position + if reference_mark is not None: + self.reference_mark = reference_mark + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this Footnote. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Footnote. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Footnote. + + Link to the document. # noqa: E501 + + :param link: The link of this Footnote. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this Footnote. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this Footnote. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this Footnote. + + Node id # noqa: E501 + + :param node_id: The node_id of this Footnote. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def content(self): + """Gets the content of this Footnote. # noqa: E501 + + Content of footnote. # noqa: E501 + + :return: The content of this Footnote. # noqa: E501 + :rtype: StoryChildNodes + """ + return self._content + + @content.setter + def content(self, content): + """Sets the content of this Footnote. + + Content of footnote. # noqa: E501 + + :param content: The content of this Footnote. # noqa: E501 + :type: StoryChildNodes + """ + self._content = content + @property + def footnote_type(self): + """Gets the footnote_type of this Footnote. # noqa: E501 + + Returns a value that specifies whether this is a footnote or endnote. # noqa: E501 + + :return: The footnote_type of this Footnote. # noqa: E501 + :rtype: str + """ + return self._footnote_type + + @footnote_type.setter + def footnote_type(self, footnote_type): + """Sets the footnote_type of this Footnote. + + Returns a value that specifies whether this is a footnote or endnote. # noqa: E501 + + :param footnote_type: The footnote_type of this Footnote. # noqa: E501 + :type: str + """ + allowed_values = ["Footnote", "Endnote"] # noqa: E501 + if not footnote_type.isdigit(): + if footnote_type not in allowed_values: + raise ValueError( + "Invalid value for `footnote_type` ({0}), must be one of {1}" # noqa: E501 + .format(footnote_type, allowed_values)) + self._footnote_type = footnote_type + else: + self._footnote_type = allowed_values[int(footnote_type) if six.PY3 else long(footnote_type)] + @property + def position(self): + """Gets the position of this Footnote. # noqa: E501 + + Link to comment range start node. # noqa: E501 + + :return: The position of this Footnote. # noqa: E501 + :rtype: DocumentPosition + """ + return self._position + + @position.setter + def position(self, position): + """Sets the position of this Footnote. + + Link to comment range start node. # noqa: E501 + + :param position: The position of this Footnote. # noqa: E501 + :type: DocumentPosition + """ + self._position = position + @property + def reference_mark(self): + """Gets the reference_mark of this Footnote. # noqa: E501 + + Gets/sets custom reference mark to be used for this footnote. Default value is , meaning auto-numbered footnotes are used. # noqa: E501 + + :return: The reference_mark of this Footnote. # noqa: E501 + :rtype: str + """ + return self._reference_mark + + @reference_mark.setter + def reference_mark(self, reference_mark): + """Sets the reference_mark of this Footnote. + + Gets/sets custom reference mark to be used for this footnote. Default value is , meaning auto-numbered footnotes are used. # noqa: E501 + + :param reference_mark: The reference_mark of this Footnote. # noqa: E501 + :type: str + """ + self._reference_mark = reference_mark + @property + def text(self): + """Gets the text of this Footnote. # noqa: E501 + + This is a convenience property that allows to easily get or set text of the footnote. # noqa: E501 + + :return: The text of this Footnote. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this Footnote. + + This is a convenience property that allows to easily get or set text of the footnote. # noqa: E501 + + :param text: The text of this Footnote. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Footnote): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/footnote_collection.py b/asposewordscloud/models/footnote_collection.py new file mode 100644 index 00000000..3e2ce055 --- /dev/null +++ b/asposewordscloud/models/footnote_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FootnoteCollection(object): + """Collection of footnotes. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[Footnote]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """FootnoteCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this FootnoteCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FootnoteCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FootnoteCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this FootnoteCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this FootnoteCollection. # noqa: E501 + + Collection of foonotes links # noqa: E501 + + :return: The list of this FootnoteCollection. # noqa: E501 + :rtype: list[Footnote] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this FootnoteCollection. + + Collection of foonotes links # noqa: E501 + + :param list: The list of this FootnoteCollection. # noqa: E501 + :type: list[Footnote] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FootnoteCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/footnote_link.py b/asposewordscloud/models/footnote_link.py new file mode 100644 index 00000000..8431f601 --- /dev/null +++ b/asposewordscloud/models/footnote_link.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FootnoteLink(object): + """Footnote link. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId' + } + + def __init__(self, link=None, node_id=None): # noqa: E501 + """FootnoteLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + + @property + def link(self): + """Gets the link of this FootnoteLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FootnoteLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FootnoteLink. + + Link to the document. # noqa: E501 + + :param link: The link of this FootnoteLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this FootnoteLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this FootnoteLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this FootnoteLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this FootnoteLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FootnoteLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/footnote_response.py b/asposewordscloud/models/footnote_response.py new file mode 100644 index 00000000..962611e2 --- /dev/null +++ b/asposewordscloud/models/footnote_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FootnoteResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/footnote/0 + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'footnote': 'Footnote' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'footnote': 'Footnote' + } + + def __init__(self, code=None, status=None, footnote=None): # noqa: E501 + """FootnoteResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._footnote = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if footnote is not None: + self.footnote = footnote + + @property + def code(self): + """Gets the code of this FootnoteResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FootnoteResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FootnoteResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FootnoteResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FootnoteResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FootnoteResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FootnoteResponse. + + Response status. # noqa: E501 + + :param status: The status of this FootnoteResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def footnote(self): + """Gets the footnote of this FootnoteResponse. # noqa: E501 + + Footnote information # noqa: E501 + + :return: The footnote of this FootnoteResponse. # noqa: E501 + :rtype: Footnote + """ + return self._footnote + + @footnote.setter + def footnote(self, footnote): + """Sets the footnote of this FootnoteResponse. + + Footnote information # noqa: E501 + + :param footnote: The footnote of this FootnoteResponse. # noqa: E501 + :type: Footnote + """ + self._footnote = footnote + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FootnoteResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/footnotes_response.py b/asposewordscloud/models/footnotes_response.py new file mode 100644 index 00000000..70dc4f20 --- /dev/null +++ b/asposewordscloud/models/footnotes_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FootnotesResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/footnotes + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'footnotes': 'FootnoteCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'footnotes': 'Footnotes' + } + + def __init__(self, code=None, status=None, footnotes=None): # noqa: E501 + """FootnotesResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._footnotes = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if footnotes is not None: + self.footnotes = footnotes + + @property + def code(self): + """Gets the code of this FootnotesResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FootnotesResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FootnotesResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FootnotesResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FootnotesResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FootnotesResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FootnotesResponse. + + Response status. # noqa: E501 + + :param status: The status of this FootnotesResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def footnotes(self): + """Gets the footnotes of this FootnotesResponse. # noqa: E501 + + Collection of footnotes. # noqa: E501 + + :return: The footnotes of this FootnotesResponse. # noqa: E501 + :rtype: FootnoteCollection + """ + return self._footnotes + + @footnotes.setter + def footnotes(self, footnotes): + """Sets the footnotes of this FootnotesResponse. + + Collection of footnotes. # noqa: E501 + + :param footnotes: The footnotes of this FootnotesResponse. # noqa: E501 + :type: FootnoteCollection + """ + self._footnotes = footnotes + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FootnotesResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/footnotes_stat_data.py b/asposewordscloud/models/footnotes_stat_data.py new file mode 100644 index 00000000..156229d2 --- /dev/null +++ b/asposewordscloud/models/footnotes_stat_data.py @@ -0,0 +1,152 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FootnotesStatData(object): + """Container for the footnotes statistical data + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'word_count': 'int', + 'paragraph_count': 'int' + } + + attribute_map = { + 'word_count': 'WordCount', + 'paragraph_count': 'ParagraphCount' + } + + def __init__(self, word_count=None, paragraph_count=None): # noqa: E501 + """FootnotesStatData - a model defined in Swagger""" # noqa: E501 + + self._word_count = None + self._paragraph_count = None + self.discriminator = None + + if word_count is not None: + self.word_count = word_count + if paragraph_count is not None: + self.paragraph_count = paragraph_count + + @property + def word_count(self): + """Gets the word_count of this FootnotesStatData. # noqa: E501 + + Total count of words in footnotes # noqa: E501 + + :return: The word_count of this FootnotesStatData. # noqa: E501 + :rtype: int + """ + return self._word_count + + @word_count.setter + def word_count(self, word_count): + """Sets the word_count of this FootnotesStatData. + + Total count of words in footnotes # noqa: E501 + + :param word_count: The word_count of this FootnotesStatData. # noqa: E501 + :type: int + """ + if word_count is None: + raise ValueError("Invalid value for `word_count`, must not be `None`") # noqa: E501 + self._word_count = word_count + @property + def paragraph_count(self): + """Gets the paragraph_count of this FootnotesStatData. # noqa: E501 + + Total count of paragraphs in footnotes # noqa: E501 + + :return: The paragraph_count of this FootnotesStatData. # noqa: E501 + :rtype: int + """ + return self._paragraph_count + + @paragraph_count.setter + def paragraph_count(self, paragraph_count): + """Sets the paragraph_count of this FootnotesStatData. + + Total count of paragraphs in footnotes # noqa: E501 + + :param paragraph_count: The paragraph_count of this FootnotesStatData. # noqa: E501 + :type: int + """ + if paragraph_count is None: + raise ValueError("Invalid value for `paragraph_count`, must not be `None`") # noqa: E501 + self._paragraph_count = paragraph_count + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FootnotesStatData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_field.py b/asposewordscloud/models/form_field.py new file mode 100644 index 00000000..8708c592 --- /dev/null +++ b/asposewordscloud/models/form_field.py @@ -0,0 +1,382 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormField(object): + """FromField + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'calculate_on_exit': 'bool', + 'enabled': 'bool', + 'entry_macro': 'str', + 'exit_macro': 'str', + 'help_text': 'str', + 'name': 'str', + 'own_help': 'bool', + 'own_status': 'bool', + 'status_text': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'calculate_on_exit': 'CalculateOnExit', + 'enabled': 'Enabled', + 'entry_macro': 'EntryMacro', + 'exit_macro': 'ExitMacro', + 'help_text': 'HelpText', + 'name': 'Name', + 'own_help': 'OwnHelp', + 'own_status': 'OwnStatus', + 'status_text': 'StatusText' + } + + def __init__(self, link=None, node_id=None, calculate_on_exit=None, enabled=None, entry_macro=None, exit_macro=None, help_text=None, name=None, own_help=None, own_status=None, status_text=None): # noqa: E501 + """FormField - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._calculate_on_exit = None + self._enabled = None + self._entry_macro = None + self._exit_macro = None + self._help_text = None + self._name = None + self._own_help = None + self._own_status = None + self._status_text = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if calculate_on_exit is not None: + self.calculate_on_exit = calculate_on_exit + if enabled is not None: + self.enabled = enabled + if entry_macro is not None: + self.entry_macro = entry_macro + if exit_macro is not None: + self.exit_macro = exit_macro + if help_text is not None: + self.help_text = help_text + if name is not None: + self.name = name + if own_help is not None: + self.own_help = own_help + if own_status is not None: + self.own_status = own_status + if status_text is not None: + self.status_text = status_text + + @property + def link(self): + """Gets the link of this FormField. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FormField. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FormField. + + Link to the document. # noqa: E501 + + :param link: The link of this FormField. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this FormField. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this FormField. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this FormField. + + Node id # noqa: E501 + + :param node_id: The node_id of this FormField. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def calculate_on_exit(self): + """Gets the calculate_on_exit of this FormField. # noqa: E501 + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :return: The calculate_on_exit of this FormField. # noqa: E501 + :rtype: bool + """ + return self._calculate_on_exit + + @calculate_on_exit.setter + def calculate_on_exit(self, calculate_on_exit): + """Sets the calculate_on_exit of this FormField. + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :param calculate_on_exit: The calculate_on_exit of this FormField. # noqa: E501 + :type: bool + """ + self._calculate_on_exit = calculate_on_exit + @property + def enabled(self): + """Gets the enabled of this FormField. # noqa: E501 + + True if a form field is enabled. # noqa: E501 + + :return: The enabled of this FormField. # noqa: E501 + :rtype: bool + """ + return self._enabled + + @enabled.setter + def enabled(self, enabled): + """Sets the enabled of this FormField. + + True if a form field is enabled. # noqa: E501 + + :param enabled: The enabled of this FormField. # noqa: E501 + :type: bool + """ + self._enabled = enabled + @property + def entry_macro(self): + """Gets the entry_macro of this FormField. # noqa: E501 + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :return: The entry_macro of this FormField. # noqa: E501 + :rtype: str + """ + return self._entry_macro + + @entry_macro.setter + def entry_macro(self, entry_macro): + """Sets the entry_macro of this FormField. + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :param entry_macro: The entry_macro of this FormField. # noqa: E501 + :type: str + """ + self._entry_macro = entry_macro + @property + def exit_macro(self): + """Gets the exit_macro of this FormField. # noqa: E501 + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :return: The exit_macro of this FormField. # noqa: E501 + :rtype: str + """ + return self._exit_macro + + @exit_macro.setter + def exit_macro(self, exit_macro): + """Sets the exit_macro of this FormField. + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :param exit_macro: The exit_macro of this FormField. # noqa: E501 + :type: str + """ + self._exit_macro = exit_macro + @property + def help_text(self): + """Gets the help_text of this FormField. # noqa: E501 + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :return: The help_text of this FormField. # noqa: E501 + :rtype: str + """ + return self._help_text + + @help_text.setter + def help_text(self, help_text): + """Sets the help_text of this FormField. + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :param help_text: The help_text of this FormField. # noqa: E501 + :type: str + """ + self._help_text = help_text + @property + def name(self): + """Gets the name of this FormField. # noqa: E501 + + Gets or sets the form field name. # noqa: E501 + + :return: The name of this FormField. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this FormField. + + Gets or sets the form field name. # noqa: E501 + + :param name: The name of this FormField. # noqa: E501 + :type: str + """ + self._name = name + @property + def own_help(self): + """Gets the own_help of this FormField. # noqa: E501 + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :return: The own_help of this FormField. # noqa: E501 + :rtype: bool + """ + return self._own_help + + @own_help.setter + def own_help(self, own_help): + """Sets the own_help of this FormField. + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :param own_help: The own_help of this FormField. # noqa: E501 + :type: bool + """ + self._own_help = own_help + @property + def own_status(self): + """Gets the own_status of this FormField. # noqa: E501 + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The own_status of this FormField. # noqa: E501 + :rtype: bool + """ + return self._own_status + + @own_status.setter + def own_status(self, own_status): + """Sets the own_status of this FormField. + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param own_status: The own_status of this FormField. # noqa: E501 + :type: bool + """ + self._own_status = own_status + @property + def status_text(self): + """Gets the status_text of this FormField. # noqa: E501 + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The status_text of this FormField. # noqa: E501 + :rtype: str + """ + return self._status_text + + @status_text.setter + def status_text(self, status_text): + """Sets the status_text of this FormField. + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param status_text: The status_text of this FormField. # noqa: E501 + :type: str + """ + self._status_text = status_text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormField): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_field_checkbox.py b/asposewordscloud/models/form_field_checkbox.py new file mode 100644 index 00000000..a1e954ae --- /dev/null +++ b/asposewordscloud/models/form_field_checkbox.py @@ -0,0 +1,460 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormFieldCheckbox(object): + """FormField checkbox element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'calculate_on_exit': 'bool', + 'enabled': 'bool', + 'entry_macro': 'str', + 'exit_macro': 'str', + 'help_text': 'str', + 'name': 'str', + 'own_help': 'bool', + 'own_status': 'bool', + 'status_text': 'str', + 'check_box_size': 'float', + 'checked': 'bool', + 'is_check_box_exact_size': 'bool' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'calculate_on_exit': 'CalculateOnExit', + 'enabled': 'Enabled', + 'entry_macro': 'EntryMacro', + 'exit_macro': 'ExitMacro', + 'help_text': 'HelpText', + 'name': 'Name', + 'own_help': 'OwnHelp', + 'own_status': 'OwnStatus', + 'status_text': 'StatusText', + 'check_box_size': 'CheckBoxSize', + 'checked': 'Checked', + 'is_check_box_exact_size': 'IsCheckBoxExactSize' + } + + def __init__(self, link=None, node_id=None, calculate_on_exit=None, enabled=None, entry_macro=None, exit_macro=None, help_text=None, name=None, own_help=None, own_status=None, status_text=None, check_box_size=None, checked=None, is_check_box_exact_size=None): # noqa: E501 + """FormFieldCheckbox - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._calculate_on_exit = None + self._enabled = None + self._entry_macro = None + self._exit_macro = None + self._help_text = None + self._name = None + self._own_help = None + self._own_status = None + self._status_text = None + self._check_box_size = None + self._checked = None + self._is_check_box_exact_size = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if calculate_on_exit is not None: + self.calculate_on_exit = calculate_on_exit + if enabled is not None: + self.enabled = enabled + if entry_macro is not None: + self.entry_macro = entry_macro + if exit_macro is not None: + self.exit_macro = exit_macro + if help_text is not None: + self.help_text = help_text + if name is not None: + self.name = name + if own_help is not None: + self.own_help = own_help + if own_status is not None: + self.own_status = own_status + if status_text is not None: + self.status_text = status_text + if check_box_size is not None: + self.check_box_size = check_box_size + if checked is not None: + self.checked = checked + if is_check_box_exact_size is not None: + self.is_check_box_exact_size = is_check_box_exact_size + + @property + def link(self): + """Gets the link of this FormFieldCheckbox. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FormFieldCheckbox. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FormFieldCheckbox. + + Link to the document. # noqa: E501 + + :param link: The link of this FormFieldCheckbox. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this FormFieldCheckbox. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this FormFieldCheckbox. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this FormFieldCheckbox. + + Node id # noqa: E501 + + :param node_id: The node_id of this FormFieldCheckbox. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def calculate_on_exit(self): + """Gets the calculate_on_exit of this FormFieldCheckbox. # noqa: E501 + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :return: The calculate_on_exit of this FormFieldCheckbox. # noqa: E501 + :rtype: bool + """ + return self._calculate_on_exit + + @calculate_on_exit.setter + def calculate_on_exit(self, calculate_on_exit): + """Sets the calculate_on_exit of this FormFieldCheckbox. + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :param calculate_on_exit: The calculate_on_exit of this FormFieldCheckbox. # noqa: E501 + :type: bool + """ + self._calculate_on_exit = calculate_on_exit + @property + def enabled(self): + """Gets the enabled of this FormFieldCheckbox. # noqa: E501 + + True if a form field is enabled. # noqa: E501 + + :return: The enabled of this FormFieldCheckbox. # noqa: E501 + :rtype: bool + """ + return self._enabled + + @enabled.setter + def enabled(self, enabled): + """Sets the enabled of this FormFieldCheckbox. + + True if a form field is enabled. # noqa: E501 + + :param enabled: The enabled of this FormFieldCheckbox. # noqa: E501 + :type: bool + """ + self._enabled = enabled + @property + def entry_macro(self): + """Gets the entry_macro of this FormFieldCheckbox. # noqa: E501 + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :return: The entry_macro of this FormFieldCheckbox. # noqa: E501 + :rtype: str + """ + return self._entry_macro + + @entry_macro.setter + def entry_macro(self, entry_macro): + """Sets the entry_macro of this FormFieldCheckbox. + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :param entry_macro: The entry_macro of this FormFieldCheckbox. # noqa: E501 + :type: str + """ + self._entry_macro = entry_macro + @property + def exit_macro(self): + """Gets the exit_macro of this FormFieldCheckbox. # noqa: E501 + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :return: The exit_macro of this FormFieldCheckbox. # noqa: E501 + :rtype: str + """ + return self._exit_macro + + @exit_macro.setter + def exit_macro(self, exit_macro): + """Sets the exit_macro of this FormFieldCheckbox. + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :param exit_macro: The exit_macro of this FormFieldCheckbox. # noqa: E501 + :type: str + """ + self._exit_macro = exit_macro + @property + def help_text(self): + """Gets the help_text of this FormFieldCheckbox. # noqa: E501 + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :return: The help_text of this FormFieldCheckbox. # noqa: E501 + :rtype: str + """ + return self._help_text + + @help_text.setter + def help_text(self, help_text): + """Sets the help_text of this FormFieldCheckbox. + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :param help_text: The help_text of this FormFieldCheckbox. # noqa: E501 + :type: str + """ + self._help_text = help_text + @property + def name(self): + """Gets the name of this FormFieldCheckbox. # noqa: E501 + + Gets or sets the form field name. # noqa: E501 + + :return: The name of this FormFieldCheckbox. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this FormFieldCheckbox. + + Gets or sets the form field name. # noqa: E501 + + :param name: The name of this FormFieldCheckbox. # noqa: E501 + :type: str + """ + self._name = name + @property + def own_help(self): + """Gets the own_help of this FormFieldCheckbox. # noqa: E501 + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :return: The own_help of this FormFieldCheckbox. # noqa: E501 + :rtype: bool + """ + return self._own_help + + @own_help.setter + def own_help(self, own_help): + """Sets the own_help of this FormFieldCheckbox. + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :param own_help: The own_help of this FormFieldCheckbox. # noqa: E501 + :type: bool + """ + self._own_help = own_help + @property + def own_status(self): + """Gets the own_status of this FormFieldCheckbox. # noqa: E501 + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The own_status of this FormFieldCheckbox. # noqa: E501 + :rtype: bool + """ + return self._own_status + + @own_status.setter + def own_status(self, own_status): + """Sets the own_status of this FormFieldCheckbox. + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param own_status: The own_status of this FormFieldCheckbox. # noqa: E501 + :type: bool + """ + self._own_status = own_status + @property + def status_text(self): + """Gets the status_text of this FormFieldCheckbox. # noqa: E501 + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The status_text of this FormFieldCheckbox. # noqa: E501 + :rtype: str + """ + return self._status_text + + @status_text.setter + def status_text(self, status_text): + """Sets the status_text of this FormFieldCheckbox. + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param status_text: The status_text of this FormFieldCheckbox. # noqa: E501 + :type: str + """ + self._status_text = status_text + @property + def check_box_size(self): + """Gets the check_box_size of this FormFieldCheckbox. # noqa: E501 + + Gets or sets the size of the checkbox in points. Has effect only when is true. # noqa: E501 + + :return: The check_box_size of this FormFieldCheckbox. # noqa: E501 + :rtype: float + """ + return self._check_box_size + + @check_box_size.setter + def check_box_size(self, check_box_size): + """Sets the check_box_size of this FormFieldCheckbox. + + Gets or sets the size of the checkbox in points. Has effect only when is true. # noqa: E501 + + :param check_box_size: The check_box_size of this FormFieldCheckbox. # noqa: E501 + :type: float + """ + self._check_box_size = check_box_size + @property + def checked(self): + """Gets the checked of this FormFieldCheckbox. # noqa: E501 + + Gets or sets the checked status of the check box form field. # noqa: E501 + + :return: The checked of this FormFieldCheckbox. # noqa: E501 + :rtype: bool + """ + return self._checked + + @checked.setter + def checked(self, checked): + """Sets the checked of this FormFieldCheckbox. + + Gets or sets the checked status of the check box form field. # noqa: E501 + + :param checked: The checked of this FormFieldCheckbox. # noqa: E501 + :type: bool + """ + self._checked = checked + @property + def is_check_box_exact_size(self): + """Gets the is_check_box_exact_size of this FormFieldCheckbox. # noqa: E501 + + Gets or sets the boolean value that indicates whether the size of the textbox is automatic or specified explicitly. # noqa: E501 + + :return: The is_check_box_exact_size of this FormFieldCheckbox. # noqa: E501 + :rtype: bool + """ + return self._is_check_box_exact_size + + @is_check_box_exact_size.setter + def is_check_box_exact_size(self, is_check_box_exact_size): + """Sets the is_check_box_exact_size of this FormFieldCheckbox. + + Gets or sets the boolean value that indicates whether the size of the textbox is automatic or specified explicitly. # noqa: E501 + + :param is_check_box_exact_size: The is_check_box_exact_size of this FormFieldCheckbox. # noqa: E501 + :type: bool + """ + self._is_check_box_exact_size = is_check_box_exact_size + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormFieldCheckbox): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_field_collection.py b/asposewordscloud/models/form_field_collection.py new file mode 100644 index 00000000..d26157dc --- /dev/null +++ b/asposewordscloud/models/form_field_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormFieldCollection(object): + """Represents DTO for collection of formfields. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[FormField]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """FormFieldCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this FormFieldCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FormFieldCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FormFieldCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this FormFieldCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this FormFieldCollection. # noqa: E501 + + Collection of formfields # noqa: E501 + + :return: The list of this FormFieldCollection. # noqa: E501 + :rtype: list[FormField] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this FormFieldCollection. + + Collection of formfields # noqa: E501 + + :param list: The list of this FormFieldCollection. # noqa: E501 + :type: list[FormField] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormFieldCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_field_drop_down.py b/asposewordscloud/models/form_field_drop_down.py new file mode 100644 index 00000000..2b34420b --- /dev/null +++ b/asposewordscloud/models/form_field_drop_down.py @@ -0,0 +1,434 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormFieldDropDown(object): + """FormField dropdownlist element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'calculate_on_exit': 'bool', + 'enabled': 'bool', + 'entry_macro': 'str', + 'exit_macro': 'str', + 'help_text': 'str', + 'name': 'str', + 'own_help': 'bool', + 'own_status': 'bool', + 'status_text': 'str', + 'drop_down_items': 'list[str]', + 'drop_down_selected_index': 'int' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'calculate_on_exit': 'CalculateOnExit', + 'enabled': 'Enabled', + 'entry_macro': 'EntryMacro', + 'exit_macro': 'ExitMacro', + 'help_text': 'HelpText', + 'name': 'Name', + 'own_help': 'OwnHelp', + 'own_status': 'OwnStatus', + 'status_text': 'StatusText', + 'drop_down_items': 'DropDownItems', + 'drop_down_selected_index': 'DropDownSelectedIndex' + } + + def __init__(self, link=None, node_id=None, calculate_on_exit=None, enabled=None, entry_macro=None, exit_macro=None, help_text=None, name=None, own_help=None, own_status=None, status_text=None, drop_down_items=None, drop_down_selected_index=None): # noqa: E501 + """FormFieldDropDown - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._calculate_on_exit = None + self._enabled = None + self._entry_macro = None + self._exit_macro = None + self._help_text = None + self._name = None + self._own_help = None + self._own_status = None + self._status_text = None + self._drop_down_items = None + self._drop_down_selected_index = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if calculate_on_exit is not None: + self.calculate_on_exit = calculate_on_exit + if enabled is not None: + self.enabled = enabled + if entry_macro is not None: + self.entry_macro = entry_macro + if exit_macro is not None: + self.exit_macro = exit_macro + if help_text is not None: + self.help_text = help_text + if name is not None: + self.name = name + if own_help is not None: + self.own_help = own_help + if own_status is not None: + self.own_status = own_status + if status_text is not None: + self.status_text = status_text + if drop_down_items is not None: + self.drop_down_items = drop_down_items + if drop_down_selected_index is not None: + self.drop_down_selected_index = drop_down_selected_index + + @property + def link(self): + """Gets the link of this FormFieldDropDown. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FormFieldDropDown. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FormFieldDropDown. + + Link to the document. # noqa: E501 + + :param link: The link of this FormFieldDropDown. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this FormFieldDropDown. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this FormFieldDropDown. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this FormFieldDropDown. + + Node id # noqa: E501 + + :param node_id: The node_id of this FormFieldDropDown. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def calculate_on_exit(self): + """Gets the calculate_on_exit of this FormFieldDropDown. # noqa: E501 + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :return: The calculate_on_exit of this FormFieldDropDown. # noqa: E501 + :rtype: bool + """ + return self._calculate_on_exit + + @calculate_on_exit.setter + def calculate_on_exit(self, calculate_on_exit): + """Sets the calculate_on_exit of this FormFieldDropDown. + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :param calculate_on_exit: The calculate_on_exit of this FormFieldDropDown. # noqa: E501 + :type: bool + """ + self._calculate_on_exit = calculate_on_exit + @property + def enabled(self): + """Gets the enabled of this FormFieldDropDown. # noqa: E501 + + True if a form field is enabled. # noqa: E501 + + :return: The enabled of this FormFieldDropDown. # noqa: E501 + :rtype: bool + """ + return self._enabled + + @enabled.setter + def enabled(self, enabled): + """Sets the enabled of this FormFieldDropDown. + + True if a form field is enabled. # noqa: E501 + + :param enabled: The enabled of this FormFieldDropDown. # noqa: E501 + :type: bool + """ + self._enabled = enabled + @property + def entry_macro(self): + """Gets the entry_macro of this FormFieldDropDown. # noqa: E501 + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :return: The entry_macro of this FormFieldDropDown. # noqa: E501 + :rtype: str + """ + return self._entry_macro + + @entry_macro.setter + def entry_macro(self, entry_macro): + """Sets the entry_macro of this FormFieldDropDown. + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :param entry_macro: The entry_macro of this FormFieldDropDown. # noqa: E501 + :type: str + """ + self._entry_macro = entry_macro + @property + def exit_macro(self): + """Gets the exit_macro of this FormFieldDropDown. # noqa: E501 + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :return: The exit_macro of this FormFieldDropDown. # noqa: E501 + :rtype: str + """ + return self._exit_macro + + @exit_macro.setter + def exit_macro(self, exit_macro): + """Sets the exit_macro of this FormFieldDropDown. + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :param exit_macro: The exit_macro of this FormFieldDropDown. # noqa: E501 + :type: str + """ + self._exit_macro = exit_macro + @property + def help_text(self): + """Gets the help_text of this FormFieldDropDown. # noqa: E501 + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :return: The help_text of this FormFieldDropDown. # noqa: E501 + :rtype: str + """ + return self._help_text + + @help_text.setter + def help_text(self, help_text): + """Sets the help_text of this FormFieldDropDown. + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :param help_text: The help_text of this FormFieldDropDown. # noqa: E501 + :type: str + """ + self._help_text = help_text + @property + def name(self): + """Gets the name of this FormFieldDropDown. # noqa: E501 + + Gets or sets the form field name. # noqa: E501 + + :return: The name of this FormFieldDropDown. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this FormFieldDropDown. + + Gets or sets the form field name. # noqa: E501 + + :param name: The name of this FormFieldDropDown. # noqa: E501 + :type: str + """ + self._name = name + @property + def own_help(self): + """Gets the own_help of this FormFieldDropDown. # noqa: E501 + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :return: The own_help of this FormFieldDropDown. # noqa: E501 + :rtype: bool + """ + return self._own_help + + @own_help.setter + def own_help(self, own_help): + """Sets the own_help of this FormFieldDropDown. + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :param own_help: The own_help of this FormFieldDropDown. # noqa: E501 + :type: bool + """ + self._own_help = own_help + @property + def own_status(self): + """Gets the own_status of this FormFieldDropDown. # noqa: E501 + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The own_status of this FormFieldDropDown. # noqa: E501 + :rtype: bool + """ + return self._own_status + + @own_status.setter + def own_status(self, own_status): + """Sets the own_status of this FormFieldDropDown. + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param own_status: The own_status of this FormFieldDropDown. # noqa: E501 + :type: bool + """ + self._own_status = own_status + @property + def status_text(self): + """Gets the status_text of this FormFieldDropDown. # noqa: E501 + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The status_text of this FormFieldDropDown. # noqa: E501 + :rtype: str + """ + return self._status_text + + @status_text.setter + def status_text(self, status_text): + """Sets the status_text of this FormFieldDropDown. + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param status_text: The status_text of this FormFieldDropDown. # noqa: E501 + :type: str + """ + self._status_text = status_text + @property + def drop_down_items(self): + """Gets the drop_down_items of this FormFieldDropDown. # noqa: E501 + + Provides access to the items of a dropdown form field. # noqa: E501 + + :return: The drop_down_items of this FormFieldDropDown. # noqa: E501 + :rtype: list[str] + """ + return self._drop_down_items + + @drop_down_items.setter + def drop_down_items(self, drop_down_items): + """Sets the drop_down_items of this FormFieldDropDown. + + Provides access to the items of a dropdown form field. # noqa: E501 + + :param drop_down_items: The drop_down_items of this FormFieldDropDown. # noqa: E501 + :type: list[str] + """ + self._drop_down_items = drop_down_items + @property + def drop_down_selected_index(self): + """Gets the drop_down_selected_index of this FormFieldDropDown. # noqa: E501 + + Gets or sets the index specifying the currently selected item in a dropdown form field. # noqa: E501 + + :return: The drop_down_selected_index of this FormFieldDropDown. # noqa: E501 + :rtype: int + """ + return self._drop_down_selected_index + + @drop_down_selected_index.setter + def drop_down_selected_index(self, drop_down_selected_index): + """Sets the drop_down_selected_index of this FormFieldDropDown. + + Gets or sets the index specifying the currently selected item in a dropdown form field. # noqa: E501 + + :param drop_down_selected_index: The drop_down_selected_index of this FormFieldDropDown. # noqa: E501 + :type: int + """ + self._drop_down_selected_index = drop_down_selected_index + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormFieldDropDown): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_field_response.py b/asposewordscloud/models/form_field_response.py new file mode 100644 index 00000000..b624ef1b --- /dev/null +++ b/asposewordscloud/models/form_field_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormFieldResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/paragraphs/{0}/formfields/{1} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'form_field': 'FormField' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'form_field': 'FormField' + } + + def __init__(self, code=None, status=None, form_field=None): # noqa: E501 + """FormFieldResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._form_field = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if form_field is not None: + self.form_field = form_field + + @property + def code(self): + """Gets the code of this FormFieldResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FormFieldResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FormFieldResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FormFieldResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FormFieldResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FormFieldResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FormFieldResponse. + + Response status. # noqa: E501 + + :param status: The status of this FormFieldResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def form_field(self): + """Gets the form_field of this FormFieldResponse. # noqa: E501 + + Field information # noqa: E501 + + :return: The form_field of this FormFieldResponse. # noqa: E501 + :rtype: FormField + """ + return self._form_field + + @form_field.setter + def form_field(self, form_field): + """Sets the form_field of this FormFieldResponse. + + Field information # noqa: E501 + + :param form_field: The form_field of this FormFieldResponse. # noqa: E501 + :type: FormField + """ + self._form_field = form_field + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormFieldResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_field_text_input.py b/asposewordscloud/models/form_field_text_input.py new file mode 100644 index 00000000..0f450186 --- /dev/null +++ b/asposewordscloud/models/form_field_text_input.py @@ -0,0 +1,494 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormFieldTextInput(object): + """FormField text input element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'calculate_on_exit': 'bool', + 'enabled': 'bool', + 'entry_macro': 'str', + 'exit_macro': 'str', + 'help_text': 'str', + 'name': 'str', + 'own_help': 'bool', + 'own_status': 'bool', + 'status_text': 'str', + 'max_length': 'int', + 'text_input_default': 'str', + 'text_input_format': 'str', + 'text_input_type': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'calculate_on_exit': 'CalculateOnExit', + 'enabled': 'Enabled', + 'entry_macro': 'EntryMacro', + 'exit_macro': 'ExitMacro', + 'help_text': 'HelpText', + 'name': 'Name', + 'own_help': 'OwnHelp', + 'own_status': 'OwnStatus', + 'status_text': 'StatusText', + 'max_length': 'MaxLength', + 'text_input_default': 'TextInputDefault', + 'text_input_format': 'TextInputFormat', + 'text_input_type': 'TextInputType' + } + + def __init__(self, link=None, node_id=None, calculate_on_exit=None, enabled=None, entry_macro=None, exit_macro=None, help_text=None, name=None, own_help=None, own_status=None, status_text=None, max_length=None, text_input_default=None, text_input_format=None, text_input_type=None): # noqa: E501 + """FormFieldTextInput - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._calculate_on_exit = None + self._enabled = None + self._entry_macro = None + self._exit_macro = None + self._help_text = None + self._name = None + self._own_help = None + self._own_status = None + self._status_text = None + self._max_length = None + self._text_input_default = None + self._text_input_format = None + self._text_input_type = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if calculate_on_exit is not None: + self.calculate_on_exit = calculate_on_exit + if enabled is not None: + self.enabled = enabled + if entry_macro is not None: + self.entry_macro = entry_macro + if exit_macro is not None: + self.exit_macro = exit_macro + if help_text is not None: + self.help_text = help_text + if name is not None: + self.name = name + if own_help is not None: + self.own_help = own_help + if own_status is not None: + self.own_status = own_status + if status_text is not None: + self.status_text = status_text + if max_length is not None: + self.max_length = max_length + if text_input_default is not None: + self.text_input_default = text_input_default + if text_input_format is not None: + self.text_input_format = text_input_format + if text_input_type is not None: + self.text_input_type = text_input_type + + @property + def link(self): + """Gets the link of this FormFieldTextInput. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this FormFieldTextInput. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this FormFieldTextInput. + + Link to the document. # noqa: E501 + + :param link: The link of this FormFieldTextInput. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this FormFieldTextInput. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this FormFieldTextInput. + + Node id # noqa: E501 + + :param node_id: The node_id of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def calculate_on_exit(self): + """Gets the calculate_on_exit of this FormFieldTextInput. # noqa: E501 + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :return: The calculate_on_exit of this FormFieldTextInput. # noqa: E501 + :rtype: bool + """ + return self._calculate_on_exit + + @calculate_on_exit.setter + def calculate_on_exit(self, calculate_on_exit): + """Sets the calculate_on_exit of this FormFieldTextInput. + + True if references to the specified form field are automatically updated whenever the field is exited. # noqa: E501 + + :param calculate_on_exit: The calculate_on_exit of this FormFieldTextInput. # noqa: E501 + :type: bool + """ + self._calculate_on_exit = calculate_on_exit + @property + def enabled(self): + """Gets the enabled of this FormFieldTextInput. # noqa: E501 + + True if a form field is enabled. # noqa: E501 + + :return: The enabled of this FormFieldTextInput. # noqa: E501 + :rtype: bool + """ + return self._enabled + + @enabled.setter + def enabled(self, enabled): + """Sets the enabled of this FormFieldTextInput. + + True if a form field is enabled. # noqa: E501 + + :param enabled: The enabled of this FormFieldTextInput. # noqa: E501 + :type: bool + """ + self._enabled = enabled + @property + def entry_macro(self): + """Gets the entry_macro of this FormFieldTextInput. # noqa: E501 + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :return: The entry_macro of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._entry_macro + + @entry_macro.setter + def entry_macro(self, entry_macro): + """Sets the entry_macro of this FormFieldTextInput. + + Returns or sets an entry macro name for the form field. # noqa: E501 + + :param entry_macro: The entry_macro of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._entry_macro = entry_macro + @property + def exit_macro(self): + """Gets the exit_macro of this FormFieldTextInput. # noqa: E501 + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :return: The exit_macro of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._exit_macro + + @exit_macro.setter + def exit_macro(self, exit_macro): + """Sets the exit_macro of this FormFieldTextInput. + + Returns or sets an exit macro name for the form field. # noqa: E501 + + :param exit_macro: The exit_macro of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._exit_macro = exit_macro + @property + def help_text(self): + """Gets the help_text of this FormFieldTextInput. # noqa: E501 + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :return: The help_text of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._help_text + + @help_text.setter + def help_text(self, help_text): + """Sets the help_text of this FormFieldTextInput. + + Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. # noqa: E501 + + :param help_text: The help_text of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._help_text = help_text + @property + def name(self): + """Gets the name of this FormFieldTextInput. # noqa: E501 + + Gets or sets the form field name. # noqa: E501 + + :return: The name of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """Sets the name of this FormFieldTextInput. + + Gets or sets the form field name. # noqa: E501 + + :param name: The name of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._name = name + @property + def own_help(self): + """Gets the own_help of this FormFieldTextInput. # noqa: E501 + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :return: The own_help of this FormFieldTextInput. # noqa: E501 + :rtype: bool + """ + return self._own_help + + @own_help.setter + def own_help(self, own_help): + """Sets the own_help of this FormFieldTextInput. + + Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. # noqa: E501 + + :param own_help: The own_help of this FormFieldTextInput. # noqa: E501 + :type: bool + """ + self._own_help = own_help + @property + def own_status(self): + """Gets the own_status of this FormFieldTextInput. # noqa: E501 + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The own_status of this FormFieldTextInput. # noqa: E501 + :rtype: bool + """ + return self._own_status + + @own_status.setter + def own_status(self, own_status): + """Sets the own_status of this FormFieldTextInput. + + Specifies the source of the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param own_status: The own_status of this FormFieldTextInput. # noqa: E501 + :type: bool + """ + self._own_status = own_status + @property + def status_text(self): + """Gets the status_text of this FormFieldTextInput. # noqa: E501 + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :return: The status_text of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._status_text + + @status_text.setter + def status_text(self, status_text): + """Sets the status_text of this FormFieldTextInput. + + Returns or sets the text that's displayed in the status bar when a form field has the focus. # noqa: E501 + + :param status_text: The status_text of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._status_text = status_text + @property + def max_length(self): + """Gets the max_length of this FormFieldTextInput. # noqa: E501 + + Maximum length for the text field. Zero when the length is not limited. # noqa: E501 + + :return: The max_length of this FormFieldTextInput. # noqa: E501 + :rtype: int + """ + return self._max_length + + @max_length.setter + def max_length(self, max_length): + """Sets the max_length of this FormFieldTextInput. + + Maximum length for the text field. Zero when the length is not limited. # noqa: E501 + + :param max_length: The max_length of this FormFieldTextInput. # noqa: E501 + :type: int + """ + self._max_length = max_length + @property + def text_input_default(self): + """Gets the text_input_default of this FormFieldTextInput. # noqa: E501 + + Gets or sets the default string or a calculation expression of a text form field. # noqa: E501 + + :return: The text_input_default of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._text_input_default + + @text_input_default.setter + def text_input_default(self, text_input_default): + """Sets the text_input_default of this FormFieldTextInput. + + Gets or sets the default string or a calculation expression of a text form field. # noqa: E501 + + :param text_input_default: The text_input_default of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._text_input_default = text_input_default + @property + def text_input_format(self): + """Gets the text_input_format of this FormFieldTextInput. # noqa: E501 + + Returns or sets the text formatting for a text form field. # noqa: E501 + + :return: The text_input_format of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._text_input_format + + @text_input_format.setter + def text_input_format(self, text_input_format): + """Sets the text_input_format of this FormFieldTextInput. + + Returns or sets the text formatting for a text form field. # noqa: E501 + + :param text_input_format: The text_input_format of this FormFieldTextInput. # noqa: E501 + :type: str + """ + self._text_input_format = text_input_format + @property + def text_input_type(self): + """Gets the text_input_type of this FormFieldTextInput. # noqa: E501 + + Gets or sets the type of a text form field. # noqa: E501 + + :return: The text_input_type of this FormFieldTextInput. # noqa: E501 + :rtype: str + """ + return self._text_input_type + + @text_input_type.setter + def text_input_type(self, text_input_type): + """Sets the text_input_type of this FormFieldTextInput. + + Gets or sets the type of a text form field. # noqa: E501 + + :param text_input_type: The text_input_type of this FormFieldTextInput. # noqa: E501 + :type: str + """ + allowed_values = ["Regular", "Number", "Date", "CurrentDate", "CurrentTime", "Calculated"] # noqa: E501 + if not text_input_type.isdigit(): + if text_input_type not in allowed_values: + raise ValueError( + "Invalid value for `text_input_type` ({0}), must be one of {1}" # noqa: E501 + .format(text_input_type, allowed_values)) + self._text_input_type = text_input_type + else: + self._text_input_type = allowed_values[int(text_input_type) if six.PY3 else long(text_input_type)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormFieldTextInput): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/form_fields_response.py b/asposewordscloud/models/form_fields_response.py new file mode 100644 index 00000000..0bdd8dcc --- /dev/null +++ b/asposewordscloud/models/form_fields_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class FormFieldsResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/{nodePath}/formfields + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'form_fields': 'FormFieldCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'form_fields': 'FormFields' + } + + def __init__(self, code=None, status=None, form_fields=None): # noqa: E501 + """FormFieldsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._form_fields = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if form_fields is not None: + self.form_fields = form_fields + + @property + def code(self): + """Gets the code of this FormFieldsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this FormFieldsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this FormFieldsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this FormFieldsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this FormFieldsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this FormFieldsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this FormFieldsResponse. + + Response status. # noqa: E501 + + :param status: The status of this FormFieldsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def form_fields(self): + """Gets the form_fields of this FormFieldsResponse. # noqa: E501 + + Collection of form fields. # noqa: E501 + + :return: The form_fields of this FormFieldsResponse. # noqa: E501 + :rtype: FormFieldCollection + """ + return self._form_fields + + @form_fields.setter + def form_fields(self, form_fields): + """Sets the form_fields of this FormFieldsResponse. + + Collection of form fields. # noqa: E501 + + :param form_fields: The form_fields of this FormFieldsResponse. # noqa: E501 + :type: FormFieldCollection + """ + self._form_fields = form_fields + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, FormFieldsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/gif_save_options_data.py b/asposewordscloud/models/gif_save_options_data.py new file mode 100644 index 00000000..94eb7175 --- /dev/null +++ b/asposewordscloud/models/gif_save_options_data.py @@ -0,0 +1,824 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class GifSaveOptionsData(object): + """Container class for gif save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None): # noqa: E501 + """GifSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + + @property + def color_mode(self): + """Gets the color_mode of this GifSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this GifSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this GifSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this GifSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this GifSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this GifSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this GifSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this GifSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this GifSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this GifSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this GifSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this GifSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this GifSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this GifSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this GifSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this GifSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this GifSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this GifSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this GifSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this GifSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this GifSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this GifSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this GifSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this GifSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this GifSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this GifSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this GifSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this GifSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this GifSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this GifSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this GifSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this GifSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this GifSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this GifSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this GifSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this GifSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this GifSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this GifSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this GifSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this GifSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this GifSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this GifSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this GifSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this GifSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this GifSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this GifSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this GifSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this GifSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this GifSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this GifSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this GifSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this GifSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this GifSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this GifSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this GifSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this GifSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this GifSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this GifSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this GifSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this GifSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this GifSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this GifSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this GifSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this GifSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this GifSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this GifSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this GifSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this GifSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this GifSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this GifSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this GifSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this GifSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this GifSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this GifSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this GifSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this GifSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this GifSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this GifSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this GifSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this GifSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this GifSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this GifSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, GifSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/graphics_quality_options_data.py b/asposewordscloud/models/graphics_quality_options_data.py new file mode 100644 index 00000000..a079c87b --- /dev/null +++ b/asposewordscloud/models/graphics_quality_options_data.py @@ -0,0 +1,292 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class GraphicsQualityOptionsData(object): + """Allows to specify additional System.Drawing.Graphics quality options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'compositing_mode': 'str', + 'compositing_quality': 'str', + 'interpolation_mode': 'str', + 'smoothing_mode': 'str', + 'string_format': 'StringFormatData', + 'text_rendering_hint': 'str' + } + + attribute_map = { + 'compositing_mode': 'CompositingMode', + 'compositing_quality': 'CompositingQuality', + 'interpolation_mode': 'InterpolationMode', + 'smoothing_mode': 'SmoothingMode', + 'string_format': 'StringFormat', + 'text_rendering_hint': 'TextRenderingHint' + } + + def __init__(self, compositing_mode=None, compositing_quality=None, interpolation_mode=None, smoothing_mode=None, string_format=None, text_rendering_hint=None): # noqa: E501 + """GraphicsQualityOptionsData - a model defined in Swagger""" # noqa: E501 + + self._compositing_mode = None + self._compositing_quality = None + self._interpolation_mode = None + self._smoothing_mode = None + self._string_format = None + self._text_rendering_hint = None + self.discriminator = None + + if compositing_mode is not None: + self.compositing_mode = compositing_mode + if compositing_quality is not None: + self.compositing_quality = compositing_quality + if interpolation_mode is not None: + self.interpolation_mode = interpolation_mode + if smoothing_mode is not None: + self.smoothing_mode = smoothing_mode + if string_format is not None: + self.string_format = string_format + if text_rendering_hint is not None: + self.text_rendering_hint = text_rendering_hint + + @property + def compositing_mode(self): + """Gets the compositing_mode of this GraphicsQualityOptionsData. # noqa: E501 + + Gets or sets a value that specifies how composited images are drawn to this Graphics. # noqa: E501 + + :return: The compositing_mode of this GraphicsQualityOptionsData. # noqa: E501 + :rtype: str + """ + return self._compositing_mode + + @compositing_mode.setter + def compositing_mode(self, compositing_mode): + """Sets the compositing_mode of this GraphicsQualityOptionsData. + + Gets or sets a value that specifies how composited images are drawn to this Graphics. # noqa: E501 + + :param compositing_mode: The compositing_mode of this GraphicsQualityOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["SourceOver", "SourceCopy"] # noqa: E501 + if not compositing_mode.isdigit(): + if compositing_mode not in allowed_values: + raise ValueError( + "Invalid value for `compositing_mode` ({0}), must be one of {1}" # noqa: E501 + .format(compositing_mode, allowed_values)) + self._compositing_mode = compositing_mode + else: + self._compositing_mode = allowed_values[int(compositing_mode) if six.PY3 else long(compositing_mode)] + @property + def compositing_quality(self): + """Gets the compositing_quality of this GraphicsQualityOptionsData. # noqa: E501 + + Gets or sets the rendering quality of composited images drawn to this Graphics. # noqa: E501 + + :return: The compositing_quality of this GraphicsQualityOptionsData. # noqa: E501 + :rtype: str + """ + return self._compositing_quality + + @compositing_quality.setter + def compositing_quality(self, compositing_quality): + """Sets the compositing_quality of this GraphicsQualityOptionsData. + + Gets or sets the rendering quality of composited images drawn to this Graphics. # noqa: E501 + + :param compositing_quality: The compositing_quality of this GraphicsQualityOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Default", "HighSpeed", "HighQuality", "GammaCorrected", "AssumeLinear", "Invalid"] # noqa: E501 + if not compositing_quality.isdigit(): + if compositing_quality not in allowed_values: + raise ValueError( + "Invalid value for `compositing_quality` ({0}), must be one of {1}" # noqa: E501 + .format(compositing_quality, allowed_values)) + self._compositing_quality = compositing_quality + else: + self._compositing_quality = allowed_values[int(compositing_quality) if six.PY3 else long(compositing_quality)] + @property + def interpolation_mode(self): + """Gets the interpolation_mode of this GraphicsQualityOptionsData. # noqa: E501 + + Gets or sets the interpolation mode associated with this Graphics. # noqa: E501 + + :return: The interpolation_mode of this GraphicsQualityOptionsData. # noqa: E501 + :rtype: str + """ + return self._interpolation_mode + + @interpolation_mode.setter + def interpolation_mode(self, interpolation_mode): + """Sets the interpolation_mode of this GraphicsQualityOptionsData. + + Gets or sets the interpolation mode associated with this Graphics. # noqa: E501 + + :param interpolation_mode: The interpolation_mode of this GraphicsQualityOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Default", "Low", "High", "Bilinear", "Bicubic", "NearestNeighbor", "HighQualityBilinear", "HighQualityBicubic", "Invalid"] # noqa: E501 + if not interpolation_mode.isdigit(): + if interpolation_mode not in allowed_values: + raise ValueError( + "Invalid value for `interpolation_mode` ({0}), must be one of {1}" # noqa: E501 + .format(interpolation_mode, allowed_values)) + self._interpolation_mode = interpolation_mode + else: + self._interpolation_mode = allowed_values[int(interpolation_mode) if six.PY3 else long(interpolation_mode)] + @property + def smoothing_mode(self): + """Gets the smoothing_mode of this GraphicsQualityOptionsData. # noqa: E501 + + Gets or sets the rendering quality for this Graphics. # noqa: E501 + + :return: The smoothing_mode of this GraphicsQualityOptionsData. # noqa: E501 + :rtype: str + """ + return self._smoothing_mode + + @smoothing_mode.setter + def smoothing_mode(self, smoothing_mode): + """Sets the smoothing_mode of this GraphicsQualityOptionsData. + + Gets or sets the rendering quality for this Graphics. # noqa: E501 + + :param smoothing_mode: The smoothing_mode of this GraphicsQualityOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Default", "HighSpeed", "HighQuality", "None", "AntiAlias", "Invalid"] # noqa: E501 + if not smoothing_mode.isdigit(): + if smoothing_mode not in allowed_values: + raise ValueError( + "Invalid value for `smoothing_mode` ({0}), must be one of {1}" # noqa: E501 + .format(smoothing_mode, allowed_values)) + self._smoothing_mode = smoothing_mode + else: + self._smoothing_mode = allowed_values[int(smoothing_mode) if six.PY3 else long(smoothing_mode)] + @property + def string_format(self): + """Gets the string_format of this GraphicsQualityOptionsData. # noqa: E501 + + Gets or sets text layout information (such as alignment, orientation and tab stops) display manipulations (such as ellipsis insertion and national digit substitution) and OpenType features. # noqa: E501 + + :return: The string_format of this GraphicsQualityOptionsData. # noqa: E501 + :rtype: StringFormatData + """ + return self._string_format + + @string_format.setter + def string_format(self, string_format): + """Sets the string_format of this GraphicsQualityOptionsData. + + Gets or sets text layout information (such as alignment, orientation and tab stops) display manipulations (such as ellipsis insertion and national digit substitution) and OpenType features. # noqa: E501 + + :param string_format: The string_format of this GraphicsQualityOptionsData. # noqa: E501 + :type: StringFormatData + """ + self._string_format = string_format + @property + def text_rendering_hint(self): + """Gets the text_rendering_hint of this GraphicsQualityOptionsData. # noqa: E501 + + Gets or sets the rendering mode for text associated with this Graphics. # noqa: E501 + + :return: The text_rendering_hint of this GraphicsQualityOptionsData. # noqa: E501 + :rtype: str + """ + return self._text_rendering_hint + + @text_rendering_hint.setter + def text_rendering_hint(self, text_rendering_hint): + """Sets the text_rendering_hint of this GraphicsQualityOptionsData. + + Gets or sets the rendering mode for text associated with this Graphics. # noqa: E501 + + :param text_rendering_hint: The text_rendering_hint of this GraphicsQualityOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["SystemDefault", "SingleBitPerPixelGridFit", "SingleBitPerPixel", "AntiAliasGridFit", "AntiAlias", "ClearTypeGridFit"] # noqa: E501 + if not text_rendering_hint.isdigit(): + if text_rendering_hint not in allowed_values: + raise ValueError( + "Invalid value for `text_rendering_hint` ({0}), must be one of {1}" # noqa: E501 + .format(text_rendering_hint, allowed_values)) + self._text_rendering_hint = text_rendering_hint + else: + self._text_rendering_hint = allowed_values[int(text_rendering_hint) if six.PY3 else long(text_rendering_hint)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, GraphicsQualityOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/header_footer.py b/asposewordscloud/models/header_footer.py new file mode 100644 index 00000000..1b6824b5 --- /dev/null +++ b/asposewordscloud/models/header_footer.py @@ -0,0 +1,208 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HeaderFooter(object): + """Section element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'type': 'str', + 'drawing_objects': 'LinkElement', + 'paragraphs': 'LinkElement' + } + + attribute_map = { + 'link': 'link', + 'type': 'Type', + 'drawing_objects': 'DrawingObjects', + 'paragraphs': 'Paragraphs' + } + + def __init__(self, link=None, type=None, drawing_objects=None, paragraphs=None): # noqa: E501 + """HeaderFooter - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._type = None + self._drawing_objects = None + self._paragraphs = None + self.discriminator = None + + if link is not None: + self.link = link + if type is not None: + self.type = type + if drawing_objects is not None: + self.drawing_objects = drawing_objects + if paragraphs is not None: + self.paragraphs = paragraphs + + @property + def link(self): + """Gets the link of this HeaderFooter. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this HeaderFooter. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this HeaderFooter. + + Link to the document. # noqa: E501 + + :param link: The link of this HeaderFooter. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def type(self): + """Gets the type of this HeaderFooter. # noqa: E501 + + Paragraph's text # noqa: E501 + + :return: The type of this HeaderFooter. # noqa: E501 + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """Sets the type of this HeaderFooter. + + Paragraph's text # noqa: E501 + + :param type: The type of this HeaderFooter. # noqa: E501 + :type: str + """ + allowed_values = ["HeaderEven", "HeaderPrimary", "FooterEven", "FooterPrimary", "HeaderFirst", "FooterFirst"] # noqa: E501 + if not type.isdigit(): + if type not in allowed_values: + raise ValueError( + "Invalid value for `type` ({0}), must be one of {1}" # noqa: E501 + .format(type, allowed_values)) + self._type = type + else: + self._type = allowed_values[int(type) if six.PY3 else long(type)] + @property + def drawing_objects(self): + """Gets the drawing_objects of this HeaderFooter. # noqa: E501 + + Link to DrawingObjects resource # noqa: E501 + + :return: The drawing_objects of this HeaderFooter. # noqa: E501 + :rtype: LinkElement + """ + return self._drawing_objects + + @drawing_objects.setter + def drawing_objects(self, drawing_objects): + """Sets the drawing_objects of this HeaderFooter. + + Link to DrawingObjects resource # noqa: E501 + + :param drawing_objects: The drawing_objects of this HeaderFooter. # noqa: E501 + :type: LinkElement + """ + self._drawing_objects = drawing_objects + @property + def paragraphs(self): + """Gets the paragraphs of this HeaderFooter. # noqa: E501 + + Link to Paragraphs resource # noqa: E501 + + :return: The paragraphs of this HeaderFooter. # noqa: E501 + :rtype: LinkElement + """ + return self._paragraphs + + @paragraphs.setter + def paragraphs(self, paragraphs): + """Sets the paragraphs of this HeaderFooter. + + Link to Paragraphs resource # noqa: E501 + + :param paragraphs: The paragraphs of this HeaderFooter. # noqa: E501 + :type: LinkElement + """ + self._paragraphs = paragraphs + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HeaderFooter): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/header_footer_link.py b/asposewordscloud/models/header_footer_link.py new file mode 100644 index 00000000..8cb4be8c --- /dev/null +++ b/asposewordscloud/models/header_footer_link.py @@ -0,0 +1,156 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HeaderFooterLink(object): + """HeaderFooter link element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'type': 'str' + } + + attribute_map = { + 'link': 'link', + 'type': 'Type' + } + + def __init__(self, link=None, type=None): # noqa: E501 + """HeaderFooterLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._type = None + self.discriminator = None + + if link is not None: + self.link = link + if type is not None: + self.type = type + + @property + def link(self): + """Gets the link of this HeaderFooterLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this HeaderFooterLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this HeaderFooterLink. + + Link to the document. # noqa: E501 + + :param link: The link of this HeaderFooterLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def type(self): + """Gets the type of this HeaderFooterLink. # noqa: E501 + + Paragraph's text # noqa: E501 + + :return: The type of this HeaderFooterLink. # noqa: E501 + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """Sets the type of this HeaderFooterLink. + + Paragraph's text # noqa: E501 + + :param type: The type of this HeaderFooterLink. # noqa: E501 + :type: str + """ + allowed_values = ["HeaderEven", "HeaderPrimary", "FooterEven", "FooterPrimary", "HeaderFirst", "FooterFirst"] # noqa: E501 + if not type.isdigit(): + if type not in allowed_values: + raise ValueError( + "Invalid value for `type` ({0}), must be one of {1}" # noqa: E501 + .format(type, allowed_values)) + self._type = type + else: + self._type = allowed_values[int(type) if six.PY3 else long(type)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HeaderFooterLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/header_footer_link_collection.py b/asposewordscloud/models/header_footer_link_collection.py new file mode 100644 index 00000000..a6f55859 --- /dev/null +++ b/asposewordscloud/models/header_footer_link_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HeaderFooterLinkCollection(object): + """Collection of links to header/footers + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[HeaderFooterLink]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """HeaderFooterLinkCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this HeaderFooterLinkCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this HeaderFooterLinkCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this HeaderFooterLinkCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this HeaderFooterLinkCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this HeaderFooterLinkCollection. # noqa: E501 + + Collection of section's links # noqa: E501 + + :return: The list of this HeaderFooterLinkCollection. # noqa: E501 + :rtype: list[HeaderFooterLink] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this HeaderFooterLinkCollection. + + Collection of section's links # noqa: E501 + + :param list: The list of this HeaderFooterLinkCollection. # noqa: E501 + :type: list[HeaderFooterLink] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HeaderFooterLinkCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/header_footer_response.py b/asposewordscloud/models/header_footer_response.py new file mode 100644 index 00000000..ed37d4fb --- /dev/null +++ b/asposewordscloud/models/header_footer_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HeaderFooterResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/headersfooters/{0} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'header_footer': 'HeaderFooter' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'header_footer': 'HeaderFooter' + } + + def __init__(self, code=None, status=None, header_footer=None): # noqa: E501 + """HeaderFooterResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._header_footer = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if header_footer is not None: + self.header_footer = header_footer + + @property + def code(self): + """Gets the code of this HeaderFooterResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this HeaderFooterResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this HeaderFooterResponse. + + Response status code. # noqa: E501 + + :param code: The code of this HeaderFooterResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this HeaderFooterResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this HeaderFooterResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this HeaderFooterResponse. + + Response status. # noqa: E501 + + :param status: The status of this HeaderFooterResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def header_footer(self): + """Gets the header_footer of this HeaderFooterResponse. # noqa: E501 + + HeaderFooter # noqa: E501 + + :return: The header_footer of this HeaderFooterResponse. # noqa: E501 + :rtype: HeaderFooter + """ + return self._header_footer + + @header_footer.setter + def header_footer(self, header_footer): + """Sets the header_footer of this HeaderFooterResponse. + + HeaderFooter # noqa: E501 + + :param header_footer: The header_footer of this HeaderFooterResponse. # noqa: E501 + :type: HeaderFooter + """ + self._header_footer = header_footer + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HeaderFooterResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/header_footers_response.py b/asposewordscloud/models/header_footers_response.py new file mode 100644 index 00000000..71c211b0 --- /dev/null +++ b/asposewordscloud/models/header_footers_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HeaderFootersResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/headersfooters + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'header_footers': 'HeaderFooterLinkCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'header_footers': 'HeaderFooters' + } + + def __init__(self, code=None, status=None, header_footers=None): # noqa: E501 + """HeaderFootersResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._header_footers = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if header_footers is not None: + self.header_footers = header_footers + + @property + def code(self): + """Gets the code of this HeaderFootersResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this HeaderFootersResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this HeaderFootersResponse. + + Response status code. # noqa: E501 + + :param code: The code of this HeaderFootersResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this HeaderFootersResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this HeaderFootersResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this HeaderFootersResponse. + + Response status. # noqa: E501 + + :param status: The status of this HeaderFootersResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def header_footers(self): + """Gets the header_footers of this HeaderFootersResponse. # noqa: E501 + + Collection of headers/footers # noqa: E501 + + :return: The header_footers of this HeaderFootersResponse. # noqa: E501 + :rtype: HeaderFooterLinkCollection + """ + return self._header_footers + + @header_footers.setter + def header_footers(self, header_footers): + """Sets the header_footers of this HeaderFootersResponse. + + Collection of headers/footers # noqa: E501 + + :param header_footers: The header_footers of this HeaderFootersResponse. # noqa: E501 + :type: HeaderFooterLinkCollection + """ + self._header_footers = header_footers + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HeaderFootersResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/html_fixed_save_options_data.py b/asposewordscloud/models/html_fixed_save_options_data.py new file mode 100644 index 00000000..32d7a7ab --- /dev/null +++ b/asposewordscloud/models/html_fixed_save_options_data.py @@ -0,0 +1,798 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HtmlFixedSaveOptionsData(object): + """container class for fixed html save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'css_class_names_prefix': 'str', + 'encoding': 'str', + 'export_embedded_css': 'bool', + 'export_embedded_fonts': 'bool', + 'export_embedded_images': 'bool', + 'export_form_fields': 'bool', + 'font_format': 'str', + 'page_horizontal_alignment': 'str', + 'page_margins': 'float', + 'resources_folder': 'str', + 'resources_folder_alias': 'str', + 'show_page_border': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'css_class_names_prefix': 'CssClassNamesPrefix', + 'encoding': 'Encoding', + 'export_embedded_css': 'ExportEmbeddedCss', + 'export_embedded_fonts': 'ExportEmbeddedFonts', + 'export_embedded_images': 'ExportEmbeddedImages', + 'export_form_fields': 'ExportFormFields', + 'font_format': 'FontFormat', + 'page_horizontal_alignment': 'PageHorizontalAlignment', + 'page_margins': 'PageMargins', + 'resources_folder': 'ResourcesFolder', + 'resources_folder_alias': 'ResourcesFolderAlias', + 'show_page_border': 'ShowPageBorder' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, css_class_names_prefix=None, encoding=None, export_embedded_css=None, export_embedded_fonts=None, export_embedded_images=None, export_form_fields=None, font_format=None, page_horizontal_alignment=None, page_margins=None, resources_folder=None, resources_folder_alias=None, show_page_border=None): # noqa: E501 + """HtmlFixedSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._css_class_names_prefix = None + self._encoding = None + self._export_embedded_css = None + self._export_embedded_fonts = None + self._export_embedded_images = None + self._export_form_fields = None + self._font_format = None + self._page_horizontal_alignment = None + self._page_margins = None + self._resources_folder = None + self._resources_folder_alias = None + self._show_page_border = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if css_class_names_prefix is not None: + self.css_class_names_prefix = css_class_names_prefix + if encoding is not None: + self.encoding = encoding + if export_embedded_css is not None: + self.export_embedded_css = export_embedded_css + if export_embedded_fonts is not None: + self.export_embedded_fonts = export_embedded_fonts + if export_embedded_images is not None: + self.export_embedded_images = export_embedded_images + if export_form_fields is not None: + self.export_form_fields = export_form_fields + if font_format is not None: + self.font_format = font_format + if page_horizontal_alignment is not None: + self.page_horizontal_alignment = page_horizontal_alignment + if page_margins is not None: + self.page_margins = page_margins + if resources_folder is not None: + self.resources_folder = resources_folder + if resources_folder_alias is not None: + self.resources_folder_alias = resources_folder_alias + if show_page_border is not None: + self.show_page_border = show_page_border + + @property + def color_mode(self): + """Gets the color_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this HtmlFixedSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this HtmlFixedSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this HtmlFixedSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this HtmlFixedSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this HtmlFixedSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this HtmlFixedSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this HtmlFixedSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this HtmlFixedSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this HtmlFixedSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this HtmlFixedSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this HtmlFixedSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this HtmlFixedSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this HtmlFixedSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this HtmlFixedSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this HtmlFixedSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this HtmlFixedSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this HtmlFixedSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this HtmlFixedSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this HtmlFixedSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this HtmlFixedSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this HtmlFixedSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this HtmlFixedSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this HtmlFixedSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this HtmlFixedSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def css_class_names_prefix(self): + """Gets the css_class_names_prefix of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies prefix which is added to all class names in style.css file. Default value is \"aw\". # noqa: E501 + + :return: The css_class_names_prefix of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_class_names_prefix + + @css_class_names_prefix.setter + def css_class_names_prefix(self, css_class_names_prefix): + """Sets the css_class_names_prefix of this HtmlFixedSaveOptionsData. + + Specifies prefix which is added to all class names in style.css file. Default value is \"aw\". # noqa: E501 + + :param css_class_names_prefix: The css_class_names_prefix of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_class_names_prefix = css_class_names_prefix + @property + def encoding(self): + """Gets the encoding of this HtmlFixedSaveOptionsData. # noqa: E501 + + Encoding. # noqa: E501 + + :return: The encoding of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._encoding + + @encoding.setter + def encoding(self, encoding): + """Sets the encoding of this HtmlFixedSaveOptionsData. + + Encoding. # noqa: E501 + + :param encoding: The encoding of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._encoding = encoding + @property + def export_embedded_css(self): + """Gets the export_embedded_css of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies whether the CSS (Cascading Style Sheet) should be embedded into Html document. # noqa: E501 + + :return: The export_embedded_css of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_embedded_css + + @export_embedded_css.setter + def export_embedded_css(self, export_embedded_css): + """Sets the export_embedded_css of this HtmlFixedSaveOptionsData. + + Specifies whether the CSS (Cascading Style Sheet) should be embedded into Html document. # noqa: E501 + + :param export_embedded_css: The export_embedded_css of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_embedded_css = export_embedded_css + @property + def export_embedded_fonts(self): + """Gets the export_embedded_fonts of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies whether fonts should be embedded into Html document in Base64 format. # noqa: E501 + + :return: The export_embedded_fonts of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_embedded_fonts + + @export_embedded_fonts.setter + def export_embedded_fonts(self, export_embedded_fonts): + """Sets the export_embedded_fonts of this HtmlFixedSaveOptionsData. + + Specifies whether fonts should be embedded into Html document in Base64 format. # noqa: E501 + + :param export_embedded_fonts: The export_embedded_fonts of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_embedded_fonts = export_embedded_fonts + @property + def export_embedded_images(self): + """Gets the export_embedded_images of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies whether images should be embedded into Html document in Base64 format. # noqa: E501 + + :return: The export_embedded_images of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_embedded_images + + @export_embedded_images.setter + def export_embedded_images(self, export_embedded_images): + """Sets the export_embedded_images of this HtmlFixedSaveOptionsData. + + Specifies whether images should be embedded into Html document in Base64 format. # noqa: E501 + + :param export_embedded_images: The export_embedded_images of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_embedded_images = export_embedded_images + @property + def export_form_fields(self): + """Gets the export_form_fields of this HtmlFixedSaveOptionsData. # noqa: E501 + + Gets or sets indication of whether form fields are exported as interactive items (as 'input' tag) rather than converted to text or graphics. # noqa: E501 + + :return: The export_form_fields of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_form_fields + + @export_form_fields.setter + def export_form_fields(self, export_form_fields): + """Sets the export_form_fields of this HtmlFixedSaveOptionsData. + + Gets or sets indication of whether form fields are exported as interactive items (as 'input' tag) rather than converted to text or graphics. # noqa: E501 + + :param export_form_fields: The export_form_fields of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_form_fields = export_form_fields + @property + def font_format(self): + """Gets the font_format of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies export format of fonts # noqa: E501 + + :return: The font_format of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._font_format + + @font_format.setter + def font_format(self, font_format): + """Sets the font_format of this HtmlFixedSaveOptionsData. + + Specifies export format of fonts # noqa: E501 + + :param font_format: The font_format of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._font_format = font_format + @property + def page_horizontal_alignment(self): + """Gets the page_horizontal_alignment of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies the horizontal alignment of pages in an HTML document. Default value is HtmlFixedHorizontalPageAlignment.Center. # noqa: E501 + + :return: The page_horizontal_alignment of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._page_horizontal_alignment + + @page_horizontal_alignment.setter + def page_horizontal_alignment(self, page_horizontal_alignment): + """Sets the page_horizontal_alignment of this HtmlFixedSaveOptionsData. + + Specifies the horizontal alignment of pages in an HTML document. Default value is HtmlFixedHorizontalPageAlignment.Center. # noqa: E501 + + :param page_horizontal_alignment: The page_horizontal_alignment of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._page_horizontal_alignment = page_horizontal_alignment + @property + def page_margins(self): + """Gets the page_margins of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies the margins around pages in an HTML document. The margins value is measured in points and should be equal to or greater than 0. Default value is 10 points. # noqa: E501 + + :return: The page_margins of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._page_margins + + @page_margins.setter + def page_margins(self, page_margins): + """Sets the page_margins of this HtmlFixedSaveOptionsData. + + Specifies the margins around pages in an HTML document. The margins value is measured in points and should be equal to or greater than 0. Default value is 10 points. # noqa: E501 + + :param page_margins: The page_margins of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: float + """ + self._page_margins = page_margins + @property + def resources_folder(self): + """Gets the resources_folder of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies the physical folder where resources are saved when exporting a document # noqa: E501 + + :return: The resources_folder of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resources_folder + + @resources_folder.setter + def resources_folder(self, resources_folder): + """Sets the resources_folder of this HtmlFixedSaveOptionsData. + + Specifies the physical folder where resources are saved when exporting a document # noqa: E501 + + :param resources_folder: The resources_folder of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._resources_folder = resources_folder + @property + def resources_folder_alias(self): + """Gets the resources_folder_alias of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct resource URIs # noqa: E501 + + :return: The resources_folder_alias of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resources_folder_alias + + @resources_folder_alias.setter + def resources_folder_alias(self, resources_folder_alias): + """Sets the resources_folder_alias of this HtmlFixedSaveOptionsData. + + Specifies the name of the folder used to construct resource URIs # noqa: E501 + + :param resources_folder_alias: The resources_folder_alias of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._resources_folder_alias = resources_folder_alias + @property + def show_page_border(self): + """Gets the show_page_border of this HtmlFixedSaveOptionsData. # noqa: E501 + + Specifies whether border around pages should be shown. # noqa: E501 + + :return: The show_page_border of this HtmlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._show_page_border + + @show_page_border.setter + def show_page_border(self, show_page_border): + """Sets the show_page_border of this HtmlFixedSaveOptionsData. + + Specifies whether border around pages should be shown. # noqa: E501 + + :param show_page_border: The show_page_border of this HtmlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._show_page_border = show_page_border + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HtmlFixedSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/html_save_options_data.py b/asposewordscloud/models/html_save_options_data.py new file mode 100644 index 00000000..573a77c9 --- /dev/null +++ b/asposewordscloud/models/html_save_options_data.py @@ -0,0 +1,1342 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HtmlSaveOptionsData(object): + """container class for html save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'allow_negative_indent': 'bool', + 'css_class_name_prefix': 'str', + 'css_style_sheet_file_name': 'str', + 'css_style_sheet_type': 'str', + 'document_split_criteria': 'str', + 'document_split_heading_level': 'int', + 'encoding': 'str', + 'export_document_properties': 'bool', + 'export_drop_down_form_field_as_text': 'bool', + 'export_font_resources': 'bool', + 'export_fonts_as_base64': 'bool', + 'export_headers_footers_mode': 'str', + 'export_images_as_base64': 'bool', + 'export_language_information': 'bool', + 'export_list_labels': 'str', + 'export_original_url_for_linked_images': 'bool', + 'export_page_margins': 'bool', + 'export_page_setup': 'bool', + 'export_relative_font_size': 'bool', + 'export_roundtrip_information': 'bool', + 'export_text_box_as_svg': 'bool', + 'export_text_input_form_field_as_text': 'bool', + 'export_toc_page_numbers': 'bool', + 'export_xhtml_transitional': 'bool', + 'font_resources_subsetting_size_threshold': 'int', + 'fonts_folder': 'str', + 'fonts_folder_alias': 'str', + 'html_version': 'str', + 'image_resolution': 'int', + 'images_folder': 'str', + 'images_folder_alias': 'str', + 'metafile_format': 'str', + 'office_math_output_mode': 'str', + 'pretty_format': 'bool', + 'resource_folder': 'str', + 'resource_folder_alias': 'str', + 'scale_image_to_shape_size': 'bool', + 'table_width_output_mode': 'str' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'allow_negative_indent': 'AllowNegativeIndent', + 'css_class_name_prefix': 'CssClassNamePrefix', + 'css_style_sheet_file_name': 'CssStyleSheetFileName', + 'css_style_sheet_type': 'CssStyleSheetType', + 'document_split_criteria': 'DocumentSplitCriteria', + 'document_split_heading_level': 'DocumentSplitHeadingLevel', + 'encoding': 'Encoding', + 'export_document_properties': 'ExportDocumentProperties', + 'export_drop_down_form_field_as_text': 'ExportDropDownFormFieldAsText', + 'export_font_resources': 'ExportFontResources', + 'export_fonts_as_base64': 'ExportFontsAsBase64', + 'export_headers_footers_mode': 'ExportHeadersFootersMode', + 'export_images_as_base64': 'ExportImagesAsBase64', + 'export_language_information': 'ExportLanguageInformation', + 'export_list_labels': 'ExportListLabels', + 'export_original_url_for_linked_images': 'ExportOriginalUrlForLinkedImages', + 'export_page_margins': 'ExportPageMargins', + 'export_page_setup': 'ExportPageSetup', + 'export_relative_font_size': 'ExportRelativeFontSize', + 'export_roundtrip_information': 'ExportRoundtripInformation', + 'export_text_box_as_svg': 'ExportTextBoxAsSvg', + 'export_text_input_form_field_as_text': 'ExportTextInputFormFieldAsText', + 'export_toc_page_numbers': 'ExportTocPageNumbers', + 'export_xhtml_transitional': 'ExportXhtmlTransitional', + 'font_resources_subsetting_size_threshold': 'FontResourcesSubsettingSizeThreshold', + 'fonts_folder': 'FontsFolder', + 'fonts_folder_alias': 'FontsFolderAlias', + 'html_version': 'HtmlVersion', + 'image_resolution': 'ImageResolution', + 'images_folder': 'ImagesFolder', + 'images_folder_alias': 'ImagesFolderAlias', + 'metafile_format': 'MetafileFormat', + 'office_math_output_mode': 'OfficeMathOutputMode', + 'pretty_format': 'PrettyFormat', + 'resource_folder': 'ResourceFolder', + 'resource_folder_alias': 'ResourceFolderAlias', + 'scale_image_to_shape_size': 'ScaleImageToShapeSize', + 'table_width_output_mode': 'TableWidthOutputMode' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, allow_negative_indent=None, css_class_name_prefix=None, css_style_sheet_file_name=None, css_style_sheet_type=None, document_split_criteria=None, document_split_heading_level=None, encoding=None, export_document_properties=None, export_drop_down_form_field_as_text=None, export_font_resources=None, export_fonts_as_base64=None, export_headers_footers_mode=None, export_images_as_base64=None, export_language_information=None, export_list_labels=None, export_original_url_for_linked_images=None, export_page_margins=None, export_page_setup=None, export_relative_font_size=None, export_roundtrip_information=None, export_text_box_as_svg=None, export_text_input_form_field_as_text=None, export_toc_page_numbers=None, export_xhtml_transitional=None, font_resources_subsetting_size_threshold=None, fonts_folder=None, fonts_folder_alias=None, html_version=None, image_resolution=None, images_folder=None, images_folder_alias=None, metafile_format=None, office_math_output_mode=None, pretty_format=None, resource_folder=None, resource_folder_alias=None, scale_image_to_shape_size=None, table_width_output_mode=None): # noqa: E501 + """HtmlSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._allow_negative_indent = None + self._css_class_name_prefix = None + self._css_style_sheet_file_name = None + self._css_style_sheet_type = None + self._document_split_criteria = None + self._document_split_heading_level = None + self._encoding = None + self._export_document_properties = None + self._export_drop_down_form_field_as_text = None + self._export_font_resources = None + self._export_fonts_as_base64 = None + self._export_headers_footers_mode = None + self._export_images_as_base64 = None + self._export_language_information = None + self._export_list_labels = None + self._export_original_url_for_linked_images = None + self._export_page_margins = None + self._export_page_setup = None + self._export_relative_font_size = None + self._export_roundtrip_information = None + self._export_text_box_as_svg = None + self._export_text_input_form_field_as_text = None + self._export_toc_page_numbers = None + self._export_xhtml_transitional = None + self._font_resources_subsetting_size_threshold = None + self._fonts_folder = None + self._fonts_folder_alias = None + self._html_version = None + self._image_resolution = None + self._images_folder = None + self._images_folder_alias = None + self._metafile_format = None + self._office_math_output_mode = None + self._pretty_format = None + self._resource_folder = None + self._resource_folder_alias = None + self._scale_image_to_shape_size = None + self._table_width_output_mode = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if allow_negative_indent is not None: + self.allow_negative_indent = allow_negative_indent + if css_class_name_prefix is not None: + self.css_class_name_prefix = css_class_name_prefix + if css_style_sheet_file_name is not None: + self.css_style_sheet_file_name = css_style_sheet_file_name + if css_style_sheet_type is not None: + self.css_style_sheet_type = css_style_sheet_type + if document_split_criteria is not None: + self.document_split_criteria = document_split_criteria + if document_split_heading_level is not None: + self.document_split_heading_level = document_split_heading_level + if encoding is not None: + self.encoding = encoding + if export_document_properties is not None: + self.export_document_properties = export_document_properties + if export_drop_down_form_field_as_text is not None: + self.export_drop_down_form_field_as_text = export_drop_down_form_field_as_text + if export_font_resources is not None: + self.export_font_resources = export_font_resources + if export_fonts_as_base64 is not None: + self.export_fonts_as_base64 = export_fonts_as_base64 + if export_headers_footers_mode is not None: + self.export_headers_footers_mode = export_headers_footers_mode + if export_images_as_base64 is not None: + self.export_images_as_base64 = export_images_as_base64 + if export_language_information is not None: + self.export_language_information = export_language_information + if export_list_labels is not None: + self.export_list_labels = export_list_labels + if export_original_url_for_linked_images is not None: + self.export_original_url_for_linked_images = export_original_url_for_linked_images + if export_page_margins is not None: + self.export_page_margins = export_page_margins + if export_page_setup is not None: + self.export_page_setup = export_page_setup + if export_relative_font_size is not None: + self.export_relative_font_size = export_relative_font_size + if export_roundtrip_information is not None: + self.export_roundtrip_information = export_roundtrip_information + if export_text_box_as_svg is not None: + self.export_text_box_as_svg = export_text_box_as_svg + if export_text_input_form_field_as_text is not None: + self.export_text_input_form_field_as_text = export_text_input_form_field_as_text + if export_toc_page_numbers is not None: + self.export_toc_page_numbers = export_toc_page_numbers + if export_xhtml_transitional is not None: + self.export_xhtml_transitional = export_xhtml_transitional + if font_resources_subsetting_size_threshold is not None: + self.font_resources_subsetting_size_threshold = font_resources_subsetting_size_threshold + if fonts_folder is not None: + self.fonts_folder = fonts_folder + if fonts_folder_alias is not None: + self.fonts_folder_alias = fonts_folder_alias + if html_version is not None: + self.html_version = html_version + if image_resolution is not None: + self.image_resolution = image_resolution + if images_folder is not None: + self.images_folder = images_folder + if images_folder_alias is not None: + self.images_folder_alias = images_folder_alias + if metafile_format is not None: + self.metafile_format = metafile_format + if office_math_output_mode is not None: + self.office_math_output_mode = office_math_output_mode + if pretty_format is not None: + self.pretty_format = pretty_format + if resource_folder is not None: + self.resource_folder = resource_folder + if resource_folder_alias is not None: + self.resource_folder_alias = resource_folder_alias + if scale_image_to_shape_size is not None: + self.scale_image_to_shape_size = scale_image_to_shape_size + if table_width_output_mode is not None: + self.table_width_output_mode = table_width_output_mode + + @property + def color_mode(self): + """Gets the color_mode of this HtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this HtmlSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this HtmlSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this HtmlSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this HtmlSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this HtmlSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this HtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this HtmlSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this HtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this HtmlSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this HtmlSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this HtmlSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this HtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this HtmlSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this HtmlSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this HtmlSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this HtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this HtmlSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def allow_negative_indent(self): + """Gets the allow_negative_indent of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether negative left and right indents of paragraphs are allowed (not normalized) # noqa: E501 + + :return: The allow_negative_indent of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._allow_negative_indent + + @allow_negative_indent.setter + def allow_negative_indent(self, allow_negative_indent): + """Sets the allow_negative_indent of this HtmlSaveOptionsData. + + Specifies whether negative left and right indents of paragraphs are allowed (not normalized) # noqa: E501 + + :param allow_negative_indent: The allow_negative_indent of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._allow_negative_indent = allow_negative_indent + @property + def css_class_name_prefix(self): + """Gets the css_class_name_prefix of this HtmlSaveOptionsData. # noqa: E501 + + Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. # noqa: E501 + + :return: The css_class_name_prefix of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_class_name_prefix + + @css_class_name_prefix.setter + def css_class_name_prefix(self, css_class_name_prefix): + """Sets the css_class_name_prefix of this HtmlSaveOptionsData. + + Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. # noqa: E501 + + :param css_class_name_prefix: The css_class_name_prefix of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_class_name_prefix = css_class_name_prefix + @property + def css_style_sheet_file_name(self): + """Gets the css_style_sheet_file_name of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the CSS file written when the document is exported to HTML # noqa: E501 + + :return: The css_style_sheet_file_name of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_style_sheet_file_name + + @css_style_sheet_file_name.setter + def css_style_sheet_file_name(self, css_style_sheet_file_name): + """Sets the css_style_sheet_file_name of this HtmlSaveOptionsData. + + Specifies the name of the CSS file written when the document is exported to HTML # noqa: E501 + + :param css_style_sheet_file_name: The css_style_sheet_file_name of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_style_sheet_file_name = css_style_sheet_file_name + @property + def css_style_sheet_type(self): + """Gets the css_style_sheet_type of this HtmlSaveOptionsData. # noqa: E501 + + Specifies how CSS styles are exported # noqa: E501 + + :return: The css_style_sheet_type of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_style_sheet_type + + @css_style_sheet_type.setter + def css_style_sheet_type(self, css_style_sheet_type): + """Sets the css_style_sheet_type of this HtmlSaveOptionsData. + + Specifies how CSS styles are exported # noqa: E501 + + :param css_style_sheet_type: The css_style_sheet_type of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_style_sheet_type = css_style_sheet_type + @property + def document_split_criteria(self): + """Gets the document_split_criteria of this HtmlSaveOptionsData. # noqa: E501 + + Specifies how the document should be split when saving # noqa: E501 + + :return: The document_split_criteria of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._document_split_criteria + + @document_split_criteria.setter + def document_split_criteria(self, document_split_criteria): + """Sets the document_split_criteria of this HtmlSaveOptionsData. + + Specifies how the document should be split when saving # noqa: E501 + + :param document_split_criteria: The document_split_criteria of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._document_split_criteria = document_split_criteria + @property + def document_split_heading_level(self): + """Gets the document_split_heading_level of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the maximum level of headings at which to split the document # noqa: E501 + + :return: The document_split_heading_level of this HtmlSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._document_split_heading_level + + @document_split_heading_level.setter + def document_split_heading_level(self, document_split_heading_level): + """Sets the document_split_heading_level of this HtmlSaveOptionsData. + + Specifies the maximum level of headings at which to split the document # noqa: E501 + + :param document_split_heading_level: The document_split_heading_level of this HtmlSaveOptionsData. # noqa: E501 + :type: int + """ + self._document_split_heading_level = document_split_heading_level + @property + def encoding(self): + """Gets the encoding of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the encoding to use when exporting # noqa: E501 + + :return: The encoding of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._encoding + + @encoding.setter + def encoding(self, encoding): + """Sets the encoding of this HtmlSaveOptionsData. + + Specifies the encoding to use when exporting # noqa: E501 + + :param encoding: The encoding of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._encoding = encoding + @property + def export_document_properties(self): + """Gets the export_document_properties of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether to export built-in and custom document properties # noqa: E501 + + :return: The export_document_properties of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_document_properties + + @export_document_properties.setter + def export_document_properties(self, export_document_properties): + """Sets the export_document_properties of this HtmlSaveOptionsData. + + Specifies whether to export built-in and custom document properties # noqa: E501 + + :param export_document_properties: The export_document_properties of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_document_properties = export_document_properties + @property + def export_drop_down_form_field_as_text(self): + """Gets the export_drop_down_form_field_as_text of this HtmlSaveOptionsData. # noqa: E501 + + Controls how drop-down form fields are saved to HTML. Default value is false. # noqa: E501 + + :return: The export_drop_down_form_field_as_text of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_drop_down_form_field_as_text + + @export_drop_down_form_field_as_text.setter + def export_drop_down_form_field_as_text(self, export_drop_down_form_field_as_text): + """Sets the export_drop_down_form_field_as_text of this HtmlSaveOptionsData. + + Controls how drop-down form fields are saved to HTML. Default value is false. # noqa: E501 + + :param export_drop_down_form_field_as_text: The export_drop_down_form_field_as_text of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_drop_down_form_field_as_text = export_drop_down_form_field_as_text + @property + def export_font_resources(self): + """Gets the export_font_resources of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether font resources should be exported # noqa: E501 + + :return: The export_font_resources of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_font_resources + + @export_font_resources.setter + def export_font_resources(self, export_font_resources): + """Sets the export_font_resources of this HtmlSaveOptionsData. + + Specifies whether font resources should be exported # noqa: E501 + + :param export_font_resources: The export_font_resources of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_font_resources = export_font_resources + @property + def export_fonts_as_base64(self): + """Gets the export_fonts_as_base64 of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. # noqa: E501 + + :return: The export_fonts_as_base64 of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_fonts_as_base64 + + @export_fonts_as_base64.setter + def export_fonts_as_base64(self, export_fonts_as_base64): + """Sets the export_fonts_as_base64 of this HtmlSaveOptionsData. + + Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. # noqa: E501 + + :param export_fonts_as_base64: The export_fonts_as_base64 of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_fonts_as_base64 = export_fonts_as_base64 + @property + def export_headers_footers_mode(self): + """Gets the export_headers_footers_mode of this HtmlSaveOptionsData. # noqa: E501 + + Specifies how headers and footers are output # noqa: E501 + + :return: The export_headers_footers_mode of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._export_headers_footers_mode + + @export_headers_footers_mode.setter + def export_headers_footers_mode(self, export_headers_footers_mode): + """Sets the export_headers_footers_mode of this HtmlSaveOptionsData. + + Specifies how headers and footers are output # noqa: E501 + + :param export_headers_footers_mode: The export_headers_footers_mode of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._export_headers_footers_mode = export_headers_footers_mode + @property + def export_images_as_base64(self): + """Gets the export_images_as_base64 of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether images are saved in Base64 format # noqa: E501 + + :return: The export_images_as_base64 of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_images_as_base64 + + @export_images_as_base64.setter + def export_images_as_base64(self, export_images_as_base64): + """Sets the export_images_as_base64 of this HtmlSaveOptionsData. + + Specifies whether images are saved in Base64 format # noqa: E501 + + :param export_images_as_base64: The export_images_as_base64 of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_images_as_base64 = export_images_as_base64 + @property + def export_language_information(self): + """Gets the export_language_information of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether language information is exported # noqa: E501 + + :return: The export_language_information of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_language_information + + @export_language_information.setter + def export_language_information(self, export_language_information): + """Sets the export_language_information of this HtmlSaveOptionsData. + + Specifies whether language information is exported # noqa: E501 + + :param export_language_information: The export_language_information of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_language_information = export_language_information + @property + def export_list_labels(self): + """Gets the export_list_labels of this HtmlSaveOptionsData. # noqa: E501 + + Controls how list labels are output # noqa: E501 + + :return: The export_list_labels of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._export_list_labels + + @export_list_labels.setter + def export_list_labels(self, export_list_labels): + """Sets the export_list_labels of this HtmlSaveOptionsData. + + Controls how list labels are output # noqa: E501 + + :param export_list_labels: The export_list_labels of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._export_list_labels = export_list_labels + @property + def export_original_url_for_linked_images(self): + """Gets the export_original_url_for_linked_images of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether original URL should be used as the URL of the linked images. Default value is false. # noqa: E501 + + :return: The export_original_url_for_linked_images of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_original_url_for_linked_images + + @export_original_url_for_linked_images.setter + def export_original_url_for_linked_images(self, export_original_url_for_linked_images): + """Sets the export_original_url_for_linked_images of this HtmlSaveOptionsData. + + Specifies whether original URL should be used as the URL of the linked images. Default value is false. # noqa: E501 + + :param export_original_url_for_linked_images: The export_original_url_for_linked_images of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_original_url_for_linked_images = export_original_url_for_linked_images + @property + def export_page_margins(self): + """Gets the export_page_margins of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. # noqa: E501 + + :return: The export_page_margins of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_page_margins + + @export_page_margins.setter + def export_page_margins(self, export_page_margins): + """Sets the export_page_margins of this HtmlSaveOptionsData. + + Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. # noqa: E501 + + :param export_page_margins: The export_page_margins of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_page_margins = export_page_margins + @property + def export_page_setup(self): + """Gets the export_page_setup of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether page setup is exported # noqa: E501 + + :return: The export_page_setup of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_page_setup + + @export_page_setup.setter + def export_page_setup(self, export_page_setup): + """Sets the export_page_setup of this HtmlSaveOptionsData. + + Specifies whether page setup is exported # noqa: E501 + + :param export_page_setup: The export_page_setup of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_page_setup = export_page_setup + @property + def export_relative_font_size(self): + """Gets the export_relative_font_size of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether font sizes should be output in relative units when saving # noqa: E501 + + :return: The export_relative_font_size of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_relative_font_size + + @export_relative_font_size.setter + def export_relative_font_size(self, export_relative_font_size): + """Sets the export_relative_font_size of this HtmlSaveOptionsData. + + Specifies whether font sizes should be output in relative units when saving # noqa: E501 + + :param export_relative_font_size: The export_relative_font_size of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_relative_font_size = export_relative_font_size + @property + def export_roundtrip_information(self): + """Gets the export_roundtrip_information of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether to write the roundtrip information when saving to HTML Default value is true. # noqa: E501 + + :return: The export_roundtrip_information of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_roundtrip_information + + @export_roundtrip_information.setter + def export_roundtrip_information(self, export_roundtrip_information): + """Sets the export_roundtrip_information of this HtmlSaveOptionsData. + + Specifies whether to write the roundtrip information when saving to HTML Default value is true. # noqa: E501 + + :param export_roundtrip_information: The export_roundtrip_information of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_roundtrip_information = export_roundtrip_information + @property + def export_text_box_as_svg(self): + """Gets the export_text_box_as_svg of this HtmlSaveOptionsData. # noqa: E501 + + Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. # noqa: E501 + + :return: The export_text_box_as_svg of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_text_box_as_svg + + @export_text_box_as_svg.setter + def export_text_box_as_svg(self, export_text_box_as_svg): + """Sets the export_text_box_as_svg of this HtmlSaveOptionsData. + + Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. # noqa: E501 + + :param export_text_box_as_svg: The export_text_box_as_svg of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_text_box_as_svg = export_text_box_as_svg + @property + def export_text_input_form_field_as_text(self): + """Gets the export_text_input_form_field_as_text of this HtmlSaveOptionsData. # noqa: E501 + + Controls how text input form fields are saved # noqa: E501 + + :return: The export_text_input_form_field_as_text of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_text_input_form_field_as_text + + @export_text_input_form_field_as_text.setter + def export_text_input_form_field_as_text(self, export_text_input_form_field_as_text): + """Sets the export_text_input_form_field_as_text of this HtmlSaveOptionsData. + + Controls how text input form fields are saved # noqa: E501 + + :param export_text_input_form_field_as_text: The export_text_input_form_field_as_text of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_text_input_form_field_as_text = export_text_input_form_field_as_text + @property + def export_toc_page_numbers(self): + """Gets the export_toc_page_numbers of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether to write page numbers to table of contents when saving # noqa: E501 + + :return: The export_toc_page_numbers of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_toc_page_numbers + + @export_toc_page_numbers.setter + def export_toc_page_numbers(self, export_toc_page_numbers): + """Sets the export_toc_page_numbers of this HtmlSaveOptionsData. + + Specifies whether to write page numbers to table of contents when saving # noqa: E501 + + :param export_toc_page_numbers: The export_toc_page_numbers of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_toc_page_numbers = export_toc_page_numbers + @property + def export_xhtml_transitional(self): + """Gets the export_xhtml_transitional of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether to write the DOCTYPE declaration when saving # noqa: E501 + + :return: The export_xhtml_transitional of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_xhtml_transitional + + @export_xhtml_transitional.setter + def export_xhtml_transitional(self, export_xhtml_transitional): + """Sets the export_xhtml_transitional of this HtmlSaveOptionsData. + + Specifies whether to write the DOCTYPE declaration when saving # noqa: E501 + + :param export_xhtml_transitional: The export_xhtml_transitional of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_xhtml_transitional = export_xhtml_transitional + @property + def font_resources_subsetting_size_threshold(self): + """Gets the font_resources_subsetting_size_threshold of this HtmlSaveOptionsData. # noqa: E501 + + Controls which font resources need subsetting when saving # noqa: E501 + + :return: The font_resources_subsetting_size_threshold of this HtmlSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._font_resources_subsetting_size_threshold + + @font_resources_subsetting_size_threshold.setter + def font_resources_subsetting_size_threshold(self, font_resources_subsetting_size_threshold): + """Sets the font_resources_subsetting_size_threshold of this HtmlSaveOptionsData. + + Controls which font resources need subsetting when saving # noqa: E501 + + :param font_resources_subsetting_size_threshold: The font_resources_subsetting_size_threshold of this HtmlSaveOptionsData. # noqa: E501 + :type: int + """ + self._font_resources_subsetting_size_threshold = font_resources_subsetting_size_threshold + @property + def fonts_folder(self): + """Gets the fonts_folder of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the physical folder where fonts are saved when exporting a document # noqa: E501 + + :return: The fonts_folder of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._fonts_folder + + @fonts_folder.setter + def fonts_folder(self, fonts_folder): + """Sets the fonts_folder of this HtmlSaveOptionsData. + + Specifies the physical folder where fonts are saved when exporting a document # noqa: E501 + + :param fonts_folder: The fonts_folder of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._fonts_folder = fonts_folder + @property + def fonts_folder_alias(self): + """Gets the fonts_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct font URIs # noqa: E501 + + :return: The fonts_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._fonts_folder_alias + + @fonts_folder_alias.setter + def fonts_folder_alias(self, fonts_folder_alias): + """Sets the fonts_folder_alias of this HtmlSaveOptionsData. + + Specifies the name of the folder used to construct font URIs # noqa: E501 + + :param fonts_folder_alias: The fonts_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._fonts_folder_alias = fonts_folder_alias + @property + def html_version(self): + """Gets the html_version of this HtmlSaveOptionsData. # noqa: E501 + + Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. # noqa: E501 + + :return: The html_version of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._html_version + + @html_version.setter + def html_version(self, html_version): + """Sets the html_version of this HtmlSaveOptionsData. + + Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. # noqa: E501 + + :param html_version: The html_version of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Xhtml", "Html5"] # noqa: E501 + if not html_version.isdigit(): + if html_version not in allowed_values: + raise ValueError( + "Invalid value for `html_version` ({0}), must be one of {1}" # noqa: E501 + .format(html_version, allowed_values)) + self._html_version = html_version + else: + self._html_version = allowed_values[int(html_version) if six.PY3 else long(html_version)] + @property + def image_resolution(self): + """Gets the image_resolution of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the output resolution for images when exporting # noqa: E501 + + :return: The image_resolution of this HtmlSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._image_resolution + + @image_resolution.setter + def image_resolution(self, image_resolution): + """Sets the image_resolution of this HtmlSaveOptionsData. + + Specifies the output resolution for images when exporting # noqa: E501 + + :param image_resolution: The image_resolution of this HtmlSaveOptionsData. # noqa: E501 + :type: int + """ + self._image_resolution = image_resolution + @property + def images_folder(self): + """Gets the images_folder of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the physical folder where images are saved when exporting a document # noqa: E501 + + :return: The images_folder of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder + + @images_folder.setter + def images_folder(self, images_folder): + """Sets the images_folder of this HtmlSaveOptionsData. + + Specifies the physical folder where images are saved when exporting a document # noqa: E501 + + :param images_folder: The images_folder of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder = images_folder + @property + def images_folder_alias(self): + """Gets the images_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :return: The images_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder_alias + + @images_folder_alias.setter + def images_folder_alias(self, images_folder_alias): + """Sets the images_folder_alias of this HtmlSaveOptionsData. + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :param images_folder_alias: The images_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder_alias = images_folder_alias + @property + def metafile_format(self): + """Gets the metafile_format of this HtmlSaveOptionsData. # noqa: E501 + + Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. # noqa: E501 + + :return: The metafile_format of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._metafile_format + + @metafile_format.setter + def metafile_format(self, metafile_format): + """Sets the metafile_format of this HtmlSaveOptionsData. + + Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. # noqa: E501 + + :param metafile_format: The metafile_format of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Png", "Svg", "EmfOrWmf"] # noqa: E501 + if not metafile_format.isdigit(): + if metafile_format not in allowed_values: + raise ValueError( + "Invalid value for `metafile_format` ({0}), must be one of {1}" # noqa: E501 + .format(metafile_format, allowed_values)) + self._metafile_format = metafile_format + else: + self._metafile_format = allowed_values[int(metafile_format) if six.PY3 else long(metafile_format)] + @property + def office_math_output_mode(self): + """Gets the office_math_output_mode of this HtmlSaveOptionsData. # noqa: E501 + + Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. # noqa: E501 + + :return: The office_math_output_mode of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._office_math_output_mode + + @office_math_output_mode.setter + def office_math_output_mode(self, office_math_output_mode): + """Sets the office_math_output_mode of this HtmlSaveOptionsData. + + Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. # noqa: E501 + + :param office_math_output_mode: The office_math_output_mode of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Image", "MathML", "Text"] # noqa: E501 + if not office_math_output_mode.isdigit(): + if office_math_output_mode not in allowed_values: + raise ValueError( + "Invalid value for `office_math_output_mode` ({0}), must be one of {1}" # noqa: E501 + .format(office_math_output_mode, allowed_values)) + self._office_math_output_mode = office_math_output_mode + else: + self._office_math_output_mode = allowed_values[int(office_math_output_mode) if six.PY3 else long(office_math_output_mode)] + @property + def pretty_format(self): + """Gets the pretty_format of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this HtmlSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + @property + def resource_folder(self): + """Gets the resource_folder of this HtmlSaveOptionsData. # noqa: E501 + + Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. # noqa: E501 + + :return: The resource_folder of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resource_folder + + @resource_folder.setter + def resource_folder(self, resource_folder): + """Sets the resource_folder of this HtmlSaveOptionsData. + + Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. # noqa: E501 + + :param resource_folder: The resource_folder of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._resource_folder = resource_folder + @property + def resource_folder_alias(self): + """Gets the resource_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. # noqa: E501 + + :return: The resource_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resource_folder_alias + + @resource_folder_alias.setter + def resource_folder_alias(self, resource_folder_alias): + """Sets the resource_folder_alias of this HtmlSaveOptionsData. + + Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. # noqa: E501 + + :param resource_folder_alias: The resource_folder_alias of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._resource_folder_alias = resource_folder_alias + @property + def scale_image_to_shape_size(self): + """Gets the scale_image_to_shape_size of this HtmlSaveOptionsData. # noqa: E501 + + Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting # noqa: E501 + + :return: The scale_image_to_shape_size of this HtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._scale_image_to_shape_size + + @scale_image_to_shape_size.setter + def scale_image_to_shape_size(self, scale_image_to_shape_size): + """Sets the scale_image_to_shape_size of this HtmlSaveOptionsData. + + Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting # noqa: E501 + + :param scale_image_to_shape_size: The scale_image_to_shape_size of this HtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._scale_image_to_shape_size = scale_image_to_shape_size + @property + def table_width_output_mode(self): + """Gets the table_width_output_mode of this HtmlSaveOptionsData. # noqa: E501 + + Controls how table, row and cell widths are exported # noqa: E501 + + :return: The table_width_output_mode of this HtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._table_width_output_mode + + @table_width_output_mode.setter + def table_width_output_mode(self, table_width_output_mode): + """Sets the table_width_output_mode of this HtmlSaveOptionsData. + + Controls how table, row and cell widths are exported # noqa: E501 + + :param table_width_output_mode: The table_width_output_mode of this HtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._table_width_output_mode = table_width_output_mode + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HtmlSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/hyperlink.py b/asposewordscloud/models/hyperlink.py new file mode 100644 index 00000000..a35fa3e6 --- /dev/null +++ b/asposewordscloud/models/hyperlink.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Hyperlink(object): + """Hyperlink element. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'display_text': 'str', + 'value': 'str' + } + + attribute_map = { + 'link': 'link', + 'display_text': 'DisplayText', + 'value': 'Value' + } + + def __init__(self, link=None, display_text=None, value=None): # noqa: E501 + """Hyperlink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._display_text = None + self._value = None + self.discriminator = None + + if link is not None: + self.link = link + if display_text is not None: + self.display_text = display_text + if value is not None: + self.value = value + + @property + def link(self): + """Gets the link of this Hyperlink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Hyperlink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Hyperlink. + + Link to the document. # noqa: E501 + + :param link: The link of this Hyperlink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def display_text(self): + """Gets the display_text of this Hyperlink. # noqa: E501 + + Hypelink's display text # noqa: E501 + + :return: The display_text of this Hyperlink. # noqa: E501 + :rtype: str + """ + return self._display_text + + @display_text.setter + def display_text(self, display_text): + """Sets the display_text of this Hyperlink. + + Hypelink's display text # noqa: E501 + + :param display_text: The display_text of this Hyperlink. # noqa: E501 + :type: str + """ + self._display_text = display_text + @property + def value(self): + """Gets the value of this Hyperlink. # noqa: E501 + + Value # noqa: E501 + + :return: The value of this Hyperlink. # noqa: E501 + :rtype: str + """ + return self._value + + @value.setter + def value(self, value): + """Sets the value of this Hyperlink. + + Value # noqa: E501 + + :param value: The value of this Hyperlink. # noqa: E501 + :type: str + """ + self._value = value + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Hyperlink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/hyperlink_response.py b/asposewordscloud/models/hyperlink_response.py new file mode 100644 index 00000000..2008f423 --- /dev/null +++ b/asposewordscloud/models/hyperlink_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HyperlinkResponse(object): + """This response should be returned by the service when handling: GET /{name}/hyperlinks/{hyperlinkIndex} . + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'hyperlink': 'Hyperlink' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'hyperlink': 'Hyperlink' + } + + def __init__(self, code=None, status=None, hyperlink=None): # noqa: E501 + """HyperlinkResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._hyperlink = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if hyperlink is not None: + self.hyperlink = hyperlink + + @property + def code(self): + """Gets the code of this HyperlinkResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this HyperlinkResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this HyperlinkResponse. + + Response status code. # noqa: E501 + + :param code: The code of this HyperlinkResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this HyperlinkResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this HyperlinkResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this HyperlinkResponse. + + Response status. # noqa: E501 + + :param status: The status of this HyperlinkResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def hyperlink(self): + """Gets the hyperlink of this HyperlinkResponse. # noqa: E501 + + Hyperlink. # noqa: E501 + + :return: The hyperlink of this HyperlinkResponse. # noqa: E501 + :rtype: Hyperlink + """ + return self._hyperlink + + @hyperlink.setter + def hyperlink(self, hyperlink): + """Sets the hyperlink of this HyperlinkResponse. + + Hyperlink. # noqa: E501 + + :param hyperlink: The hyperlink of this HyperlinkResponse. # noqa: E501 + :type: Hyperlink + """ + self._hyperlink = hyperlink + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HyperlinkResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/hyperlinks.py b/asposewordscloud/models/hyperlinks.py new file mode 100644 index 00000000..f9fb155e --- /dev/null +++ b/asposewordscloud/models/hyperlinks.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Hyperlinks(object): + """Collection of . + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'hyperlink_list': 'list[Hyperlink]' + } + + attribute_map = { + 'link': 'link', + 'hyperlink_list': 'HyperlinkList' + } + + def __init__(self, link=None, hyperlink_list=None): # noqa: E501 + """Hyperlinks - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._hyperlink_list = None + self.discriminator = None + + if link is not None: + self.link = link + if hyperlink_list is not None: + self.hyperlink_list = hyperlink_list + + @property + def link(self): + """Gets the link of this Hyperlinks. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Hyperlinks. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Hyperlinks. + + Link to the document. # noqa: E501 + + :param link: The link of this Hyperlinks. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def hyperlink_list(self): + """Gets the hyperlink_list of this Hyperlinks. # noqa: E501 + + Array of . # noqa: E501 + + :return: The hyperlink_list of this Hyperlinks. # noqa: E501 + :rtype: list[Hyperlink] + """ + return self._hyperlink_list + + @hyperlink_list.setter + def hyperlink_list(self, hyperlink_list): + """Sets the hyperlink_list of this Hyperlinks. + + Array of . # noqa: E501 + + :param hyperlink_list: The hyperlink_list of this Hyperlinks. # noqa: E501 + :type: list[Hyperlink] + """ + self._hyperlink_list = hyperlink_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Hyperlinks): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/hyperlinks_response.py b/asposewordscloud/models/hyperlinks_response.py new file mode 100644 index 00000000..70e9a73c --- /dev/null +++ b/asposewordscloud/models/hyperlinks_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class HyperlinksResponse(object): + """This response should be returned by the service when handling: GET /{name}/hyperlinks . + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'hyperlinks': 'Hyperlinks' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'hyperlinks': 'Hyperlinks' + } + + def __init__(self, code=None, status=None, hyperlinks=None): # noqa: E501 + """HyperlinksResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._hyperlinks = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if hyperlinks is not None: + self.hyperlinks = hyperlinks + + @property + def code(self): + """Gets the code of this HyperlinksResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this HyperlinksResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this HyperlinksResponse. + + Response status code. # noqa: E501 + + :param code: The code of this HyperlinksResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this HyperlinksResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this HyperlinksResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this HyperlinksResponse. + + Response status. # noqa: E501 + + :param status: The status of this HyperlinksResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def hyperlinks(self): + """Gets the hyperlinks of this HyperlinksResponse. # noqa: E501 + + Collection of hyperlinks. # noqa: E501 + + :return: The hyperlinks of this HyperlinksResponse. # noqa: E501 + :rtype: Hyperlinks + """ + return self._hyperlinks + + @hyperlinks.setter + def hyperlinks(self, hyperlinks): + """Sets the hyperlinks of this HyperlinksResponse. + + Collection of hyperlinks. # noqa: E501 + + :param hyperlinks: The hyperlinks of this HyperlinksResponse. # noqa: E501 + :type: Hyperlinks + """ + self._hyperlinks = hyperlinks + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, HyperlinksResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/image_save_options_data.py b/asposewordscloud/models/image_save_options_data.py new file mode 100644 index 00000000..bd8e62e9 --- /dev/null +++ b/asposewordscloud/models/image_save_options_data.py @@ -0,0 +1,824 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ImageSaveOptionsData(object): + """Container abstract class for image save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None): # noqa: E501 + """ImageSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + + @property + def color_mode(self): + """Gets the color_mode of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this ImageSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this ImageSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this ImageSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this ImageSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this ImageSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this ImageSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this ImageSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this ImageSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this ImageSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this ImageSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this ImageSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this ImageSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this ImageSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this ImageSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this ImageSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this ImageSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this ImageSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this ImageSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this ImageSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this ImageSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this ImageSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this ImageSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this ImageSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this ImageSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this ImageSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this ImageSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this ImageSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this ImageSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this ImageSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this ImageSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this ImageSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this ImageSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this ImageSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this ImageSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this ImageSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this ImageSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this ImageSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this ImageSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this ImageSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this ImageSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this ImageSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this ImageSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this ImageSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this ImageSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this ImageSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this ImageSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this ImageSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this ImageSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this ImageSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this ImageSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this ImageSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this ImageSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this ImageSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this ImageSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this ImageSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this ImageSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this ImageSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this ImageSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this ImageSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this ImageSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this ImageSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this ImageSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this ImageSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this ImageSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this ImageSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this ImageSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this ImageSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this ImageSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this ImageSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this ImageSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this ImageSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this ImageSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this ImageSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this ImageSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ImageSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/jpeg_save_options_data.py b/asposewordscloud/models/jpeg_save_options_data.py new file mode 100644 index 00000000..caa38f1d --- /dev/null +++ b/asposewordscloud/models/jpeg_save_options_data.py @@ -0,0 +1,824 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class JpegSaveOptionsData(object): + """container class for jpeg save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None): # noqa: E501 + """JpegSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + + @property + def color_mode(self): + """Gets the color_mode of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this JpegSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this JpegSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this JpegSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this JpegSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this JpegSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this JpegSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this JpegSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this JpegSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this JpegSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this JpegSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this JpegSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this JpegSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this JpegSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this JpegSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this JpegSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this JpegSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this JpegSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this JpegSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this JpegSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this JpegSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this JpegSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this JpegSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this JpegSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this JpegSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this JpegSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this JpegSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this JpegSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this JpegSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this JpegSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this JpegSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this JpegSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this JpegSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this JpegSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this JpegSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this JpegSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this JpegSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this JpegSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this JpegSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this JpegSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this JpegSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this JpegSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this JpegSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this JpegSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this JpegSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this JpegSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this JpegSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this JpegSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this JpegSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this JpegSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this JpegSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this JpegSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this JpegSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this JpegSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this JpegSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this JpegSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this JpegSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this JpegSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this JpegSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this JpegSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this JpegSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this JpegSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this JpegSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this JpegSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this JpegSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this JpegSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this JpegSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this JpegSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this JpegSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this JpegSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this JpegSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this JpegSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this JpegSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this JpegSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this JpegSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, JpegSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/link.py b/asposewordscloud/models/link.py new file mode 100644 index 00000000..5259dbef --- /dev/null +++ b/asposewordscloud/models/link.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Link(object): + """Provides information for the object link. This is supposed to be an atom:link, therefore it should have all attributes specified here http://tools.ietf.org/html/rfc4287#section-4.2.7 + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'href': 'str', + 'rel': 'str', + 'type': 'str', + 'title': 'str' + } + + attribute_map = { + 'href': 'Href', + 'rel': 'Rel', + 'type': 'Type', + 'title': 'Title' + } + + def __init__(self, href=None, rel=None, type=None, title=None): # noqa: E501 + """Link - a model defined in Swagger""" # noqa: E501 + + self._href = None + self._rel = None + self._type = None + self._title = None + self.discriminator = None + + if href is not None: + self.href = href + if rel is not None: + self.rel = rel + if type is not None: + self.type = type + if title is not None: + self.title = title + + @property + def href(self): + """Gets the href of this Link. # noqa: E501 + + The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference # noqa: E501 + + :return: The href of this Link. # noqa: E501 + :rtype: str + """ + return self._href + + @href.setter + def href(self, href): + """Sets the href of this Link. + + The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference # noqa: E501 + + :param href: The href of this Link. # noqa: E501 + :type: str + """ + self._href = href + @property + def rel(self): + """Gets the rel of this Link. # noqa: E501 + + atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". # noqa: E501 + + :return: The rel of this Link. # noqa: E501 + :rtype: str + """ + return self._rel + + @rel.setter + def rel(self, rel): + """Sets the rel of this Link. + + atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". # noqa: E501 + + :param rel: The rel of this Link. # noqa: E501 + :type: str + """ + self._rel = rel + @property + def type(self): + """Gets the type of this Link. # noqa: E501 + + On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. # noqa: E501 + + :return: The type of this Link. # noqa: E501 + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """Sets the type of this Link. + + On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. # noqa: E501 + + :param type: The type of this Link. # noqa: E501 + :type: str + """ + self._type = type + @property + def title(self): + """Gets the title of this Link. # noqa: E501 + + The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. # noqa: E501 + + :return: The title of this Link. # noqa: E501 + :rtype: str + """ + return self._title + + @title.setter + def title(self, title): + """Sets the title of this Link. + + The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. # noqa: E501 + + :param title: The title of this Link. # noqa: E501 + :type: str + """ + self._title = title + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Link): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/link_element.py b/asposewordscloud/models/link_element.py new file mode 100644 index 00000000..23eb325e --- /dev/null +++ b/asposewordscloud/models/link_element.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class LinkElement(object): + """Reference to document. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink' + } + + attribute_map = { + 'link': 'link' + } + + def __init__(self, link=None): # noqa: E501 + """LinkElement - a model defined in Swagger""" # noqa: E501 + + self._link = None + self.discriminator = None + + if link is not None: + self.link = link + + @property + def link(self): + """Gets the link of this LinkElement. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this LinkElement. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this LinkElement. + + Link to the document. # noqa: E501 + + :param link: The link of this LinkElement. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, LinkElement): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/load_web_document_data.py b/asposewordscloud/models/load_web_document_data.py new file mode 100644 index 00000000..38512bf2 --- /dev/null +++ b/asposewordscloud/models/load_web_document_data.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class LoadWebDocumentData(object): + """Contains data for load web document + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'loading_document_url': 'str', + 'save_options': 'SaveOptionsData' + } + + attribute_map = { + 'loading_document_url': 'LoadingDocumentUrl', + 'save_options': 'SaveOptions' + } + + def __init__(self, loading_document_url=None, save_options=None): # noqa: E501 + """LoadWebDocumentData - a model defined in Swagger""" # noqa: E501 + + self._loading_document_url = None + self._save_options = None + self.discriminator = None + + if loading_document_url is not None: + self.loading_document_url = loading_document_url + if save_options is not None: + self.save_options = save_options + + @property + def loading_document_url(self): + """Gets the loading_document_url of this LoadWebDocumentData. # noqa: E501 + + Web document url # noqa: E501 + + :return: The loading_document_url of this LoadWebDocumentData. # noqa: E501 + :rtype: str + """ + return self._loading_document_url + + @loading_document_url.setter + def loading_document_url(self, loading_document_url): + """Sets the loading_document_url of this LoadWebDocumentData. + + Web document url # noqa: E501 + + :param loading_document_url: The loading_document_url of this LoadWebDocumentData. # noqa: E501 + :type: str + """ + self._loading_document_url = loading_document_url + @property + def save_options(self): + """Gets the save_options of this LoadWebDocumentData. # noqa: E501 + + Save options # noqa: E501 + + :return: The save_options of this LoadWebDocumentData. # noqa: E501 + :rtype: SaveOptionsData + """ + return self._save_options + + @save_options.setter + def save_options(self, save_options): + """Sets the save_options of this LoadWebDocumentData. + + Save options # noqa: E501 + + :param save_options: The save_options of this LoadWebDocumentData. # noqa: E501 + :type: SaveOptionsData + """ + self._save_options = save_options + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, LoadWebDocumentData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/metafile_rendering_options_data.py b/asposewordscloud/models/metafile_rendering_options_data.py new file mode 100644 index 00000000..4e049d26 --- /dev/null +++ b/asposewordscloud/models/metafile_rendering_options_data.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class MetafileRenderingOptionsData(object): + """container class for options of metafile rendering + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'emf_plus_dual_rendering_mode': 'str', + 'emulate_raster_operations': 'bool', + 'rendering_mode': 'str', + 'use_emf_embedded_to_wmf': 'bool' + } + + attribute_map = { + 'emf_plus_dual_rendering_mode': 'EmfPlusDualRenderingMode', + 'emulate_raster_operations': 'EmulateRasterOperations', + 'rendering_mode': 'RenderingMode', + 'use_emf_embedded_to_wmf': 'UseEmfEmbeddedToWmf' + } + + def __init__(self, emf_plus_dual_rendering_mode=None, emulate_raster_operations=None, rendering_mode=None, use_emf_embedded_to_wmf=None): # noqa: E501 + """MetafileRenderingOptionsData - a model defined in Swagger""" # noqa: E501 + + self._emf_plus_dual_rendering_mode = None + self._emulate_raster_operations = None + self._rendering_mode = None + self._use_emf_embedded_to_wmf = None + self.discriminator = None + + if emf_plus_dual_rendering_mode is not None: + self.emf_plus_dual_rendering_mode = emf_plus_dual_rendering_mode + if emulate_raster_operations is not None: + self.emulate_raster_operations = emulate_raster_operations + if rendering_mode is not None: + self.rendering_mode = rendering_mode + if use_emf_embedded_to_wmf is not None: + self.use_emf_embedded_to_wmf = use_emf_embedded_to_wmf + + @property + def emf_plus_dual_rendering_mode(self): + """Gets the emf_plus_dual_rendering_mode of this MetafileRenderingOptionsData. # noqa: E501 + + Determines how EMF+ Dual metafiles should be rendered # noqa: E501 + + :return: The emf_plus_dual_rendering_mode of this MetafileRenderingOptionsData. # noqa: E501 + :rtype: str + """ + return self._emf_plus_dual_rendering_mode + + @emf_plus_dual_rendering_mode.setter + def emf_plus_dual_rendering_mode(self, emf_plus_dual_rendering_mode): + """Sets the emf_plus_dual_rendering_mode of this MetafileRenderingOptionsData. + + Determines how EMF+ Dual metafiles should be rendered # noqa: E501 + + :param emf_plus_dual_rendering_mode: The emf_plus_dual_rendering_mode of this MetafileRenderingOptionsData. # noqa: E501 + :type: str + """ + self._emf_plus_dual_rendering_mode = emf_plus_dual_rendering_mode + @property + def emulate_raster_operations(self): + """Gets the emulate_raster_operations of this MetafileRenderingOptionsData. # noqa: E501 + + Gets or sets a value determining whether or not the raster operations should be emulated. # noqa: E501 + + :return: The emulate_raster_operations of this MetafileRenderingOptionsData. # noqa: E501 + :rtype: bool + """ + return self._emulate_raster_operations + + @emulate_raster_operations.setter + def emulate_raster_operations(self, emulate_raster_operations): + """Sets the emulate_raster_operations of this MetafileRenderingOptionsData. + + Gets or sets a value determining whether or not the raster operations should be emulated. # noqa: E501 + + :param emulate_raster_operations: The emulate_raster_operations of this MetafileRenderingOptionsData. # noqa: E501 + :type: bool + """ + self._emulate_raster_operations = emulate_raster_operations + @property + def rendering_mode(self): + """Gets the rendering_mode of this MetafileRenderingOptionsData. # noqa: E501 + + Determines how metafile images should be rendered # noqa: E501 + + :return: The rendering_mode of this MetafileRenderingOptionsData. # noqa: E501 + :rtype: str + """ + return self._rendering_mode + + @rendering_mode.setter + def rendering_mode(self, rendering_mode): + """Sets the rendering_mode of this MetafileRenderingOptionsData. + + Determines how metafile images should be rendered # noqa: E501 + + :param rendering_mode: The rendering_mode of this MetafileRenderingOptionsData. # noqa: E501 + :type: str + """ + self._rendering_mode = rendering_mode + @property + def use_emf_embedded_to_wmf(self): + """Gets the use_emf_embedded_to_wmf of this MetafileRenderingOptionsData. # noqa: E501 + + Determines how WMF metafiles with embedded EMF metafiles should be rendered # noqa: E501 + + :return: The use_emf_embedded_to_wmf of this MetafileRenderingOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_emf_embedded_to_wmf + + @use_emf_embedded_to_wmf.setter + def use_emf_embedded_to_wmf(self, use_emf_embedded_to_wmf): + """Sets the use_emf_embedded_to_wmf of this MetafileRenderingOptionsData. + + Determines how WMF metafiles with embedded EMF metafiles should be rendered # noqa: E501 + + :param use_emf_embedded_to_wmf: The use_emf_embedded_to_wmf of this MetafileRenderingOptionsData. # noqa: E501 + :type: bool + """ + self._use_emf_embedded_to_wmf = use_emf_embedded_to_wmf + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, MetafileRenderingOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/mhtml_save_options_data.py b/asposewordscloud/models/mhtml_save_options_data.py new file mode 100644 index 00000000..f20e950a --- /dev/null +++ b/asposewordscloud/models/mhtml_save_options_data.py @@ -0,0 +1,1342 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class MhtmlSaveOptionsData(object): + """Container class for mhtml save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'allow_negative_indent': 'bool', + 'css_class_name_prefix': 'str', + 'css_style_sheet_file_name': 'str', + 'css_style_sheet_type': 'str', + 'document_split_criteria': 'str', + 'document_split_heading_level': 'int', + 'encoding': 'str', + 'export_document_properties': 'bool', + 'export_drop_down_form_field_as_text': 'bool', + 'export_font_resources': 'bool', + 'export_fonts_as_base64': 'bool', + 'export_headers_footers_mode': 'str', + 'export_images_as_base64': 'bool', + 'export_language_information': 'bool', + 'export_list_labels': 'str', + 'export_original_url_for_linked_images': 'bool', + 'export_page_margins': 'bool', + 'export_page_setup': 'bool', + 'export_relative_font_size': 'bool', + 'export_roundtrip_information': 'bool', + 'export_text_box_as_svg': 'bool', + 'export_text_input_form_field_as_text': 'bool', + 'export_toc_page_numbers': 'bool', + 'export_xhtml_transitional': 'bool', + 'font_resources_subsetting_size_threshold': 'int', + 'fonts_folder': 'str', + 'fonts_folder_alias': 'str', + 'html_version': 'str', + 'image_resolution': 'int', + 'images_folder': 'str', + 'images_folder_alias': 'str', + 'metafile_format': 'str', + 'office_math_output_mode': 'str', + 'pretty_format': 'bool', + 'resource_folder': 'str', + 'resource_folder_alias': 'str', + 'scale_image_to_shape_size': 'bool', + 'table_width_output_mode': 'str' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'allow_negative_indent': 'AllowNegativeIndent', + 'css_class_name_prefix': 'CssClassNamePrefix', + 'css_style_sheet_file_name': 'CssStyleSheetFileName', + 'css_style_sheet_type': 'CssStyleSheetType', + 'document_split_criteria': 'DocumentSplitCriteria', + 'document_split_heading_level': 'DocumentSplitHeadingLevel', + 'encoding': 'Encoding', + 'export_document_properties': 'ExportDocumentProperties', + 'export_drop_down_form_field_as_text': 'ExportDropDownFormFieldAsText', + 'export_font_resources': 'ExportFontResources', + 'export_fonts_as_base64': 'ExportFontsAsBase64', + 'export_headers_footers_mode': 'ExportHeadersFootersMode', + 'export_images_as_base64': 'ExportImagesAsBase64', + 'export_language_information': 'ExportLanguageInformation', + 'export_list_labels': 'ExportListLabels', + 'export_original_url_for_linked_images': 'ExportOriginalUrlForLinkedImages', + 'export_page_margins': 'ExportPageMargins', + 'export_page_setup': 'ExportPageSetup', + 'export_relative_font_size': 'ExportRelativeFontSize', + 'export_roundtrip_information': 'ExportRoundtripInformation', + 'export_text_box_as_svg': 'ExportTextBoxAsSvg', + 'export_text_input_form_field_as_text': 'ExportTextInputFormFieldAsText', + 'export_toc_page_numbers': 'ExportTocPageNumbers', + 'export_xhtml_transitional': 'ExportXhtmlTransitional', + 'font_resources_subsetting_size_threshold': 'FontResourcesSubsettingSizeThreshold', + 'fonts_folder': 'FontsFolder', + 'fonts_folder_alias': 'FontsFolderAlias', + 'html_version': 'HtmlVersion', + 'image_resolution': 'ImageResolution', + 'images_folder': 'ImagesFolder', + 'images_folder_alias': 'ImagesFolderAlias', + 'metafile_format': 'MetafileFormat', + 'office_math_output_mode': 'OfficeMathOutputMode', + 'pretty_format': 'PrettyFormat', + 'resource_folder': 'ResourceFolder', + 'resource_folder_alias': 'ResourceFolderAlias', + 'scale_image_to_shape_size': 'ScaleImageToShapeSize', + 'table_width_output_mode': 'TableWidthOutputMode' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, allow_negative_indent=None, css_class_name_prefix=None, css_style_sheet_file_name=None, css_style_sheet_type=None, document_split_criteria=None, document_split_heading_level=None, encoding=None, export_document_properties=None, export_drop_down_form_field_as_text=None, export_font_resources=None, export_fonts_as_base64=None, export_headers_footers_mode=None, export_images_as_base64=None, export_language_information=None, export_list_labels=None, export_original_url_for_linked_images=None, export_page_margins=None, export_page_setup=None, export_relative_font_size=None, export_roundtrip_information=None, export_text_box_as_svg=None, export_text_input_form_field_as_text=None, export_toc_page_numbers=None, export_xhtml_transitional=None, font_resources_subsetting_size_threshold=None, fonts_folder=None, fonts_folder_alias=None, html_version=None, image_resolution=None, images_folder=None, images_folder_alias=None, metafile_format=None, office_math_output_mode=None, pretty_format=None, resource_folder=None, resource_folder_alias=None, scale_image_to_shape_size=None, table_width_output_mode=None): # noqa: E501 + """MhtmlSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._allow_negative_indent = None + self._css_class_name_prefix = None + self._css_style_sheet_file_name = None + self._css_style_sheet_type = None + self._document_split_criteria = None + self._document_split_heading_level = None + self._encoding = None + self._export_document_properties = None + self._export_drop_down_form_field_as_text = None + self._export_font_resources = None + self._export_fonts_as_base64 = None + self._export_headers_footers_mode = None + self._export_images_as_base64 = None + self._export_language_information = None + self._export_list_labels = None + self._export_original_url_for_linked_images = None + self._export_page_margins = None + self._export_page_setup = None + self._export_relative_font_size = None + self._export_roundtrip_information = None + self._export_text_box_as_svg = None + self._export_text_input_form_field_as_text = None + self._export_toc_page_numbers = None + self._export_xhtml_transitional = None + self._font_resources_subsetting_size_threshold = None + self._fonts_folder = None + self._fonts_folder_alias = None + self._html_version = None + self._image_resolution = None + self._images_folder = None + self._images_folder_alias = None + self._metafile_format = None + self._office_math_output_mode = None + self._pretty_format = None + self._resource_folder = None + self._resource_folder_alias = None + self._scale_image_to_shape_size = None + self._table_width_output_mode = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if allow_negative_indent is not None: + self.allow_negative_indent = allow_negative_indent + if css_class_name_prefix is not None: + self.css_class_name_prefix = css_class_name_prefix + if css_style_sheet_file_name is not None: + self.css_style_sheet_file_name = css_style_sheet_file_name + if css_style_sheet_type is not None: + self.css_style_sheet_type = css_style_sheet_type + if document_split_criteria is not None: + self.document_split_criteria = document_split_criteria + if document_split_heading_level is not None: + self.document_split_heading_level = document_split_heading_level + if encoding is not None: + self.encoding = encoding + if export_document_properties is not None: + self.export_document_properties = export_document_properties + if export_drop_down_form_field_as_text is not None: + self.export_drop_down_form_field_as_text = export_drop_down_form_field_as_text + if export_font_resources is not None: + self.export_font_resources = export_font_resources + if export_fonts_as_base64 is not None: + self.export_fonts_as_base64 = export_fonts_as_base64 + if export_headers_footers_mode is not None: + self.export_headers_footers_mode = export_headers_footers_mode + if export_images_as_base64 is not None: + self.export_images_as_base64 = export_images_as_base64 + if export_language_information is not None: + self.export_language_information = export_language_information + if export_list_labels is not None: + self.export_list_labels = export_list_labels + if export_original_url_for_linked_images is not None: + self.export_original_url_for_linked_images = export_original_url_for_linked_images + if export_page_margins is not None: + self.export_page_margins = export_page_margins + if export_page_setup is not None: + self.export_page_setup = export_page_setup + if export_relative_font_size is not None: + self.export_relative_font_size = export_relative_font_size + if export_roundtrip_information is not None: + self.export_roundtrip_information = export_roundtrip_information + if export_text_box_as_svg is not None: + self.export_text_box_as_svg = export_text_box_as_svg + if export_text_input_form_field_as_text is not None: + self.export_text_input_form_field_as_text = export_text_input_form_field_as_text + if export_toc_page_numbers is not None: + self.export_toc_page_numbers = export_toc_page_numbers + if export_xhtml_transitional is not None: + self.export_xhtml_transitional = export_xhtml_transitional + if font_resources_subsetting_size_threshold is not None: + self.font_resources_subsetting_size_threshold = font_resources_subsetting_size_threshold + if fonts_folder is not None: + self.fonts_folder = fonts_folder + if fonts_folder_alias is not None: + self.fonts_folder_alias = fonts_folder_alias + if html_version is not None: + self.html_version = html_version + if image_resolution is not None: + self.image_resolution = image_resolution + if images_folder is not None: + self.images_folder = images_folder + if images_folder_alias is not None: + self.images_folder_alias = images_folder_alias + if metafile_format is not None: + self.metafile_format = metafile_format + if office_math_output_mode is not None: + self.office_math_output_mode = office_math_output_mode + if pretty_format is not None: + self.pretty_format = pretty_format + if resource_folder is not None: + self.resource_folder = resource_folder + if resource_folder_alias is not None: + self.resource_folder_alias = resource_folder_alias + if scale_image_to_shape_size is not None: + self.scale_image_to_shape_size = scale_image_to_shape_size + if table_width_output_mode is not None: + self.table_width_output_mode = table_width_output_mode + + @property + def color_mode(self): + """Gets the color_mode of this MhtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this MhtmlSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this MhtmlSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this MhtmlSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this MhtmlSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this MhtmlSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this MhtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this MhtmlSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this MhtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this MhtmlSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this MhtmlSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this MhtmlSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this MhtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this MhtmlSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this MhtmlSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this MhtmlSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this MhtmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this MhtmlSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def allow_negative_indent(self): + """Gets the allow_negative_indent of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether negative left and right indents of paragraphs are allowed (not normalized) # noqa: E501 + + :return: The allow_negative_indent of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._allow_negative_indent + + @allow_negative_indent.setter + def allow_negative_indent(self, allow_negative_indent): + """Sets the allow_negative_indent of this MhtmlSaveOptionsData. + + Specifies whether negative left and right indents of paragraphs are allowed (not normalized) # noqa: E501 + + :param allow_negative_indent: The allow_negative_indent of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._allow_negative_indent = allow_negative_indent + @property + def css_class_name_prefix(self): + """Gets the css_class_name_prefix of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. # noqa: E501 + + :return: The css_class_name_prefix of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_class_name_prefix + + @css_class_name_prefix.setter + def css_class_name_prefix(self, css_class_name_prefix): + """Sets the css_class_name_prefix of this MhtmlSaveOptionsData. + + Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. # noqa: E501 + + :param css_class_name_prefix: The css_class_name_prefix of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_class_name_prefix = css_class_name_prefix + @property + def css_style_sheet_file_name(self): + """Gets the css_style_sheet_file_name of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the CSS file written when the document is exported to HTML # noqa: E501 + + :return: The css_style_sheet_file_name of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_style_sheet_file_name + + @css_style_sheet_file_name.setter + def css_style_sheet_file_name(self, css_style_sheet_file_name): + """Sets the css_style_sheet_file_name of this MhtmlSaveOptionsData. + + Specifies the name of the CSS file written when the document is exported to HTML # noqa: E501 + + :param css_style_sheet_file_name: The css_style_sheet_file_name of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_style_sheet_file_name = css_style_sheet_file_name + @property + def css_style_sheet_type(self): + """Gets the css_style_sheet_type of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies how CSS styles are exported # noqa: E501 + + :return: The css_style_sheet_type of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._css_style_sheet_type + + @css_style_sheet_type.setter + def css_style_sheet_type(self, css_style_sheet_type): + """Sets the css_style_sheet_type of this MhtmlSaveOptionsData. + + Specifies how CSS styles are exported # noqa: E501 + + :param css_style_sheet_type: The css_style_sheet_type of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._css_style_sheet_type = css_style_sheet_type + @property + def document_split_criteria(self): + """Gets the document_split_criteria of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies how the document should be split when saving # noqa: E501 + + :return: The document_split_criteria of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._document_split_criteria + + @document_split_criteria.setter + def document_split_criteria(self, document_split_criteria): + """Sets the document_split_criteria of this MhtmlSaveOptionsData. + + Specifies how the document should be split when saving # noqa: E501 + + :param document_split_criteria: The document_split_criteria of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._document_split_criteria = document_split_criteria + @property + def document_split_heading_level(self): + """Gets the document_split_heading_level of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the maximum level of headings at which to split the document # noqa: E501 + + :return: The document_split_heading_level of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._document_split_heading_level + + @document_split_heading_level.setter + def document_split_heading_level(self, document_split_heading_level): + """Sets the document_split_heading_level of this MhtmlSaveOptionsData. + + Specifies the maximum level of headings at which to split the document # noqa: E501 + + :param document_split_heading_level: The document_split_heading_level of this MhtmlSaveOptionsData. # noqa: E501 + :type: int + """ + self._document_split_heading_level = document_split_heading_level + @property + def encoding(self): + """Gets the encoding of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the encoding to use when exporting # noqa: E501 + + :return: The encoding of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._encoding + + @encoding.setter + def encoding(self, encoding): + """Sets the encoding of this MhtmlSaveOptionsData. + + Specifies the encoding to use when exporting # noqa: E501 + + :param encoding: The encoding of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._encoding = encoding + @property + def export_document_properties(self): + """Gets the export_document_properties of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether to export built-in and custom document properties # noqa: E501 + + :return: The export_document_properties of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_document_properties + + @export_document_properties.setter + def export_document_properties(self, export_document_properties): + """Sets the export_document_properties of this MhtmlSaveOptionsData. + + Specifies whether to export built-in and custom document properties # noqa: E501 + + :param export_document_properties: The export_document_properties of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_document_properties = export_document_properties + @property + def export_drop_down_form_field_as_text(self): + """Gets the export_drop_down_form_field_as_text of this MhtmlSaveOptionsData. # noqa: E501 + + Controls how drop-down form fields are saved to HTML. Default value is false. # noqa: E501 + + :return: The export_drop_down_form_field_as_text of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_drop_down_form_field_as_text + + @export_drop_down_form_field_as_text.setter + def export_drop_down_form_field_as_text(self, export_drop_down_form_field_as_text): + """Sets the export_drop_down_form_field_as_text of this MhtmlSaveOptionsData. + + Controls how drop-down form fields are saved to HTML. Default value is false. # noqa: E501 + + :param export_drop_down_form_field_as_text: The export_drop_down_form_field_as_text of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_drop_down_form_field_as_text = export_drop_down_form_field_as_text + @property + def export_font_resources(self): + """Gets the export_font_resources of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether font resources should be exported # noqa: E501 + + :return: The export_font_resources of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_font_resources + + @export_font_resources.setter + def export_font_resources(self, export_font_resources): + """Sets the export_font_resources of this MhtmlSaveOptionsData. + + Specifies whether font resources should be exported # noqa: E501 + + :param export_font_resources: The export_font_resources of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_font_resources = export_font_resources + @property + def export_fonts_as_base64(self): + """Gets the export_fonts_as_base64 of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. # noqa: E501 + + :return: The export_fonts_as_base64 of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_fonts_as_base64 + + @export_fonts_as_base64.setter + def export_fonts_as_base64(self, export_fonts_as_base64): + """Sets the export_fonts_as_base64 of this MhtmlSaveOptionsData. + + Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. # noqa: E501 + + :param export_fonts_as_base64: The export_fonts_as_base64 of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_fonts_as_base64 = export_fonts_as_base64 + @property + def export_headers_footers_mode(self): + """Gets the export_headers_footers_mode of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies how headers and footers are output # noqa: E501 + + :return: The export_headers_footers_mode of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._export_headers_footers_mode + + @export_headers_footers_mode.setter + def export_headers_footers_mode(self, export_headers_footers_mode): + """Sets the export_headers_footers_mode of this MhtmlSaveOptionsData. + + Specifies how headers and footers are output # noqa: E501 + + :param export_headers_footers_mode: The export_headers_footers_mode of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._export_headers_footers_mode = export_headers_footers_mode + @property + def export_images_as_base64(self): + """Gets the export_images_as_base64 of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether images are saved in Base64 format # noqa: E501 + + :return: The export_images_as_base64 of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_images_as_base64 + + @export_images_as_base64.setter + def export_images_as_base64(self, export_images_as_base64): + """Sets the export_images_as_base64 of this MhtmlSaveOptionsData. + + Specifies whether images are saved in Base64 format # noqa: E501 + + :param export_images_as_base64: The export_images_as_base64 of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_images_as_base64 = export_images_as_base64 + @property + def export_language_information(self): + """Gets the export_language_information of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether language information is exported # noqa: E501 + + :return: The export_language_information of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_language_information + + @export_language_information.setter + def export_language_information(self, export_language_information): + """Sets the export_language_information of this MhtmlSaveOptionsData. + + Specifies whether language information is exported # noqa: E501 + + :param export_language_information: The export_language_information of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_language_information = export_language_information + @property + def export_list_labels(self): + """Gets the export_list_labels of this MhtmlSaveOptionsData. # noqa: E501 + + Controls how list labels are output # noqa: E501 + + :return: The export_list_labels of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._export_list_labels + + @export_list_labels.setter + def export_list_labels(self, export_list_labels): + """Sets the export_list_labels of this MhtmlSaveOptionsData. + + Controls how list labels are output # noqa: E501 + + :param export_list_labels: The export_list_labels of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._export_list_labels = export_list_labels + @property + def export_original_url_for_linked_images(self): + """Gets the export_original_url_for_linked_images of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether original URL should be used as the URL of the linked images. Default value is false. # noqa: E501 + + :return: The export_original_url_for_linked_images of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_original_url_for_linked_images + + @export_original_url_for_linked_images.setter + def export_original_url_for_linked_images(self, export_original_url_for_linked_images): + """Sets the export_original_url_for_linked_images of this MhtmlSaveOptionsData. + + Specifies whether original URL should be used as the URL of the linked images. Default value is false. # noqa: E501 + + :param export_original_url_for_linked_images: The export_original_url_for_linked_images of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_original_url_for_linked_images = export_original_url_for_linked_images + @property + def export_page_margins(self): + """Gets the export_page_margins of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. # noqa: E501 + + :return: The export_page_margins of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_page_margins + + @export_page_margins.setter + def export_page_margins(self, export_page_margins): + """Sets the export_page_margins of this MhtmlSaveOptionsData. + + Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. # noqa: E501 + + :param export_page_margins: The export_page_margins of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_page_margins = export_page_margins + @property + def export_page_setup(self): + """Gets the export_page_setup of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether page setup is exported # noqa: E501 + + :return: The export_page_setup of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_page_setup + + @export_page_setup.setter + def export_page_setup(self, export_page_setup): + """Sets the export_page_setup of this MhtmlSaveOptionsData. + + Specifies whether page setup is exported # noqa: E501 + + :param export_page_setup: The export_page_setup of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_page_setup = export_page_setup + @property + def export_relative_font_size(self): + """Gets the export_relative_font_size of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether font sizes should be output in relative units when saving # noqa: E501 + + :return: The export_relative_font_size of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_relative_font_size + + @export_relative_font_size.setter + def export_relative_font_size(self, export_relative_font_size): + """Sets the export_relative_font_size of this MhtmlSaveOptionsData. + + Specifies whether font sizes should be output in relative units when saving # noqa: E501 + + :param export_relative_font_size: The export_relative_font_size of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_relative_font_size = export_relative_font_size + @property + def export_roundtrip_information(self): + """Gets the export_roundtrip_information of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether to write the roundtrip information when saving to HTML Default value is true. # noqa: E501 + + :return: The export_roundtrip_information of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_roundtrip_information + + @export_roundtrip_information.setter + def export_roundtrip_information(self, export_roundtrip_information): + """Sets the export_roundtrip_information of this MhtmlSaveOptionsData. + + Specifies whether to write the roundtrip information when saving to HTML Default value is true. # noqa: E501 + + :param export_roundtrip_information: The export_roundtrip_information of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_roundtrip_information = export_roundtrip_information + @property + def export_text_box_as_svg(self): + """Gets the export_text_box_as_svg of this MhtmlSaveOptionsData. # noqa: E501 + + Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. # noqa: E501 + + :return: The export_text_box_as_svg of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_text_box_as_svg + + @export_text_box_as_svg.setter + def export_text_box_as_svg(self, export_text_box_as_svg): + """Sets the export_text_box_as_svg of this MhtmlSaveOptionsData. + + Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. # noqa: E501 + + :param export_text_box_as_svg: The export_text_box_as_svg of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_text_box_as_svg = export_text_box_as_svg + @property + def export_text_input_form_field_as_text(self): + """Gets the export_text_input_form_field_as_text of this MhtmlSaveOptionsData. # noqa: E501 + + Controls how text input form fields are saved # noqa: E501 + + :return: The export_text_input_form_field_as_text of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_text_input_form_field_as_text + + @export_text_input_form_field_as_text.setter + def export_text_input_form_field_as_text(self, export_text_input_form_field_as_text): + """Sets the export_text_input_form_field_as_text of this MhtmlSaveOptionsData. + + Controls how text input form fields are saved # noqa: E501 + + :param export_text_input_form_field_as_text: The export_text_input_form_field_as_text of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_text_input_form_field_as_text = export_text_input_form_field_as_text + @property + def export_toc_page_numbers(self): + """Gets the export_toc_page_numbers of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether to write page numbers to table of contents when saving # noqa: E501 + + :return: The export_toc_page_numbers of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_toc_page_numbers + + @export_toc_page_numbers.setter + def export_toc_page_numbers(self, export_toc_page_numbers): + """Sets the export_toc_page_numbers of this MhtmlSaveOptionsData. + + Specifies whether to write page numbers to table of contents when saving # noqa: E501 + + :param export_toc_page_numbers: The export_toc_page_numbers of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_toc_page_numbers = export_toc_page_numbers + @property + def export_xhtml_transitional(self): + """Gets the export_xhtml_transitional of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether to write the DOCTYPE declaration when saving # noqa: E501 + + :return: The export_xhtml_transitional of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_xhtml_transitional + + @export_xhtml_transitional.setter + def export_xhtml_transitional(self, export_xhtml_transitional): + """Sets the export_xhtml_transitional of this MhtmlSaveOptionsData. + + Specifies whether to write the DOCTYPE declaration when saving # noqa: E501 + + :param export_xhtml_transitional: The export_xhtml_transitional of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_xhtml_transitional = export_xhtml_transitional + @property + def font_resources_subsetting_size_threshold(self): + """Gets the font_resources_subsetting_size_threshold of this MhtmlSaveOptionsData. # noqa: E501 + + Controls which font resources need subsetting when saving # noqa: E501 + + :return: The font_resources_subsetting_size_threshold of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._font_resources_subsetting_size_threshold + + @font_resources_subsetting_size_threshold.setter + def font_resources_subsetting_size_threshold(self, font_resources_subsetting_size_threshold): + """Sets the font_resources_subsetting_size_threshold of this MhtmlSaveOptionsData. + + Controls which font resources need subsetting when saving # noqa: E501 + + :param font_resources_subsetting_size_threshold: The font_resources_subsetting_size_threshold of this MhtmlSaveOptionsData. # noqa: E501 + :type: int + """ + self._font_resources_subsetting_size_threshold = font_resources_subsetting_size_threshold + @property + def fonts_folder(self): + """Gets the fonts_folder of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the physical folder where fonts are saved when exporting a document # noqa: E501 + + :return: The fonts_folder of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._fonts_folder + + @fonts_folder.setter + def fonts_folder(self, fonts_folder): + """Sets the fonts_folder of this MhtmlSaveOptionsData. + + Specifies the physical folder where fonts are saved when exporting a document # noqa: E501 + + :param fonts_folder: The fonts_folder of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._fonts_folder = fonts_folder + @property + def fonts_folder_alias(self): + """Gets the fonts_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct font URIs # noqa: E501 + + :return: The fonts_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._fonts_folder_alias + + @fonts_folder_alias.setter + def fonts_folder_alias(self, fonts_folder_alias): + """Sets the fonts_folder_alias of this MhtmlSaveOptionsData. + + Specifies the name of the folder used to construct font URIs # noqa: E501 + + :param fonts_folder_alias: The fonts_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._fonts_folder_alias = fonts_folder_alias + @property + def html_version(self): + """Gets the html_version of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. # noqa: E501 + + :return: The html_version of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._html_version + + @html_version.setter + def html_version(self, html_version): + """Sets the html_version of this MhtmlSaveOptionsData. + + Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. # noqa: E501 + + :param html_version: The html_version of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Xhtml", "Html5"] # noqa: E501 + if not html_version.isdigit(): + if html_version not in allowed_values: + raise ValueError( + "Invalid value for `html_version` ({0}), must be one of {1}" # noqa: E501 + .format(html_version, allowed_values)) + self._html_version = html_version + else: + self._html_version = allowed_values[int(html_version) if six.PY3 else long(html_version)] + @property + def image_resolution(self): + """Gets the image_resolution of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the output resolution for images when exporting # noqa: E501 + + :return: The image_resolution of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._image_resolution + + @image_resolution.setter + def image_resolution(self, image_resolution): + """Sets the image_resolution of this MhtmlSaveOptionsData. + + Specifies the output resolution for images when exporting # noqa: E501 + + :param image_resolution: The image_resolution of this MhtmlSaveOptionsData. # noqa: E501 + :type: int + """ + self._image_resolution = image_resolution + @property + def images_folder(self): + """Gets the images_folder of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the physical folder where images are saved when exporting a document # noqa: E501 + + :return: The images_folder of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder + + @images_folder.setter + def images_folder(self, images_folder): + """Sets the images_folder of this MhtmlSaveOptionsData. + + Specifies the physical folder where images are saved when exporting a document # noqa: E501 + + :param images_folder: The images_folder of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder = images_folder + @property + def images_folder_alias(self): + """Gets the images_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :return: The images_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder_alias + + @images_folder_alias.setter + def images_folder_alias(self, images_folder_alias): + """Sets the images_folder_alias of this MhtmlSaveOptionsData. + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :param images_folder_alias: The images_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder_alias = images_folder_alias + @property + def metafile_format(self): + """Gets the metafile_format of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. # noqa: E501 + + :return: The metafile_format of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._metafile_format + + @metafile_format.setter + def metafile_format(self, metafile_format): + """Sets the metafile_format of this MhtmlSaveOptionsData. + + Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. # noqa: E501 + + :param metafile_format: The metafile_format of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Png", "Svg", "EmfOrWmf"] # noqa: E501 + if not metafile_format.isdigit(): + if metafile_format not in allowed_values: + raise ValueError( + "Invalid value for `metafile_format` ({0}), must be one of {1}" # noqa: E501 + .format(metafile_format, allowed_values)) + self._metafile_format = metafile_format + else: + self._metafile_format = allowed_values[int(metafile_format) if six.PY3 else long(metafile_format)] + @property + def office_math_output_mode(self): + """Gets the office_math_output_mode of this MhtmlSaveOptionsData. # noqa: E501 + + Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. # noqa: E501 + + :return: The office_math_output_mode of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._office_math_output_mode + + @office_math_output_mode.setter + def office_math_output_mode(self, office_math_output_mode): + """Sets the office_math_output_mode of this MhtmlSaveOptionsData. + + Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. # noqa: E501 + + :param office_math_output_mode: The office_math_output_mode of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Image", "MathML", "Text"] # noqa: E501 + if not office_math_output_mode.isdigit(): + if office_math_output_mode not in allowed_values: + raise ValueError( + "Invalid value for `office_math_output_mode` ({0}), must be one of {1}" # noqa: E501 + .format(office_math_output_mode, allowed_values)) + self._office_math_output_mode = office_math_output_mode + else: + self._office_math_output_mode = allowed_values[int(office_math_output_mode) if six.PY3 else long(office_math_output_mode)] + @property + def pretty_format(self): + """Gets the pretty_format of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this MhtmlSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + @property + def resource_folder(self): + """Gets the resource_folder of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. # noqa: E501 + + :return: The resource_folder of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resource_folder + + @resource_folder.setter + def resource_folder(self, resource_folder): + """Sets the resource_folder of this MhtmlSaveOptionsData. + + Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. # noqa: E501 + + :param resource_folder: The resource_folder of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._resource_folder = resource_folder + @property + def resource_folder_alias(self): + """Gets the resource_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. # noqa: E501 + + :return: The resource_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resource_folder_alias + + @resource_folder_alias.setter + def resource_folder_alias(self, resource_folder_alias): + """Sets the resource_folder_alias of this MhtmlSaveOptionsData. + + Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. # noqa: E501 + + :param resource_folder_alias: The resource_folder_alias of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._resource_folder_alias = resource_folder_alias + @property + def scale_image_to_shape_size(self): + """Gets the scale_image_to_shape_size of this MhtmlSaveOptionsData. # noqa: E501 + + Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting # noqa: E501 + + :return: The scale_image_to_shape_size of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._scale_image_to_shape_size + + @scale_image_to_shape_size.setter + def scale_image_to_shape_size(self, scale_image_to_shape_size): + """Sets the scale_image_to_shape_size of this MhtmlSaveOptionsData. + + Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting # noqa: E501 + + :param scale_image_to_shape_size: The scale_image_to_shape_size of this MhtmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._scale_image_to_shape_size = scale_image_to_shape_size + @property + def table_width_output_mode(self): + """Gets the table_width_output_mode of this MhtmlSaveOptionsData. # noqa: E501 + + Controls how table, row and cell widths are exported # noqa: E501 + + :return: The table_width_output_mode of this MhtmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._table_width_output_mode + + @table_width_output_mode.setter + def table_width_output_mode(self, table_width_output_mode): + """Sets the table_width_output_mode of this MhtmlSaveOptionsData. + + Controls how table, row and cell widths are exported # noqa: E501 + + :param table_width_output_mode: The table_width_output_mode of this MhtmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._table_width_output_mode = table_width_output_mode + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, MhtmlSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/modification_operation_result.py b/asposewordscloud/models/modification_operation_result.py new file mode 100644 index 00000000..a03ef69c --- /dev/null +++ b/asposewordscloud/models/modification_operation_result.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ModificationOperationResult(object): + """result of the operation which modifies the original document and saves the result + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'source': 'FileLink', + 'dest': 'FileLink' + } + + attribute_map = { + 'source': 'Source', + 'dest': 'Dest' + } + + def __init__(self, source=None, dest=None): # noqa: E501 + """ModificationOperationResult - a model defined in Swagger""" # noqa: E501 + + self._source = None + self._dest = None + self.discriminator = None + + if source is not None: + self.source = source + if dest is not None: + self.dest = dest + + @property + def source(self): + """Gets the source of this ModificationOperationResult. # noqa: E501 + + Link to the source document (source for the modification operation) # noqa: E501 + + :return: The source of this ModificationOperationResult. # noqa: E501 + :rtype: FileLink + """ + return self._source + + @source.setter + def source(self, source): + """Sets the source of this ModificationOperationResult. + + Link to the source document (source for the modification operation) # noqa: E501 + + :param source: The source of this ModificationOperationResult. # noqa: E501 + :type: FileLink + """ + self._source = source + @property + def dest(self): + """Gets the dest of this ModificationOperationResult. # noqa: E501 + + Link to the dest document (result of the modification operation) # noqa: E501 + + :return: The dest of this ModificationOperationResult. # noqa: E501 + :rtype: FileLink + """ + return self._dest + + @dest.setter + def dest(self, dest): + """Sets the dest of this ModificationOperationResult. + + Link to the dest document (result of the modification operation) # noqa: E501 + + :param dest: The dest of this ModificationOperationResult. # noqa: E501 + :type: FileLink + """ + self._dest = dest + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ModificationOperationResult): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/node_link.py b/asposewordscloud/models/node_link.py new file mode 100644 index 00000000..ad6ad0fb --- /dev/null +++ b/asposewordscloud/models/node_link.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class NodeLink(object): + """Reference to node + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId' + } + + def __init__(self, link=None, node_id=None): # noqa: E501 + """NodeLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + + @property + def link(self): + """Gets the link of this NodeLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this NodeLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this NodeLink. + + Link to the document. # noqa: E501 + + :param link: The link of this NodeLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this NodeLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this NodeLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this NodeLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this NodeLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, NodeLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/odt_save_options_data.py b/asposewordscloud/models/odt_save_options_data.py new file mode 100644 index 00000000..6720cbef --- /dev/null +++ b/asposewordscloud/models/odt_save_options_data.py @@ -0,0 +1,416 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OdtSaveOptionsData(object): + """container class for odt/ott save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'is_strict_schema11': 'bool', + 'measure_unit': 'str', + 'pretty_format': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'is_strict_schema11': 'IsStrictSchema11', + 'measure_unit': 'MeasureUnit', + 'pretty_format': 'PrettyFormat' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, is_strict_schema11=None, measure_unit=None, pretty_format=None): # noqa: E501 + """OdtSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._is_strict_schema11 = None + self._measure_unit = None + self._pretty_format = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if is_strict_schema11 is not None: + self.is_strict_schema11 = is_strict_schema11 + if measure_unit is not None: + self.measure_unit = measure_unit + if pretty_format is not None: + self.pretty_format = pretty_format + + @property + def color_mode(self): + """Gets the color_mode of this OdtSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this OdtSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this OdtSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this OdtSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this OdtSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this OdtSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this OdtSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this OdtSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this OdtSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this OdtSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this OdtSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this OdtSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this OdtSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this OdtSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this OdtSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this OdtSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this OdtSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this OdtSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this OdtSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this OdtSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this OdtSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this OdtSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this OdtSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this OdtSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this OdtSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this OdtSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this OdtSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this OdtSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this OdtSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this OdtSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this OdtSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this OdtSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this OdtSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this OdtSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this OdtSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this OdtSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def is_strict_schema11(self): + """Gets the is_strict_schema11 of this OdtSaveOptionsData. # noqa: E501 + + Specifies whether export should correspond to ODT specification 1.1 strictly # noqa: E501 + + :return: The is_strict_schema11 of this OdtSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._is_strict_schema11 + + @is_strict_schema11.setter + def is_strict_schema11(self, is_strict_schema11): + """Sets the is_strict_schema11 of this OdtSaveOptionsData. + + Specifies whether export should correspond to ODT specification 1.1 strictly # noqa: E501 + + :param is_strict_schema11: The is_strict_schema11 of this OdtSaveOptionsData. # noqa: E501 + :type: bool + """ + self._is_strict_schema11 = is_strict_schema11 + @property + def measure_unit(self): + """Gets the measure_unit of this OdtSaveOptionsData. # noqa: E501 + + Allows to specify units of measure to apply to document content. The default value is Aspose.Words.Saving.OdtSaveMeasureUnit.Centimeters Open Office uses centimeters when specifying lengths, widths and other measurable formatting and content properties in documents whereas MS Office uses inches. # noqa: E501 + + :return: The measure_unit of this OdtSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._measure_unit + + @measure_unit.setter + def measure_unit(self, measure_unit): + """Sets the measure_unit of this OdtSaveOptionsData. + + Allows to specify units of measure to apply to document content. The default value is Aspose.Words.Saving.OdtSaveMeasureUnit.Centimeters Open Office uses centimeters when specifying lengths, widths and other measurable formatting and content properties in documents whereas MS Office uses inches. # noqa: E501 + + :param measure_unit: The measure_unit of this OdtSaveOptionsData. # noqa: E501 + :type: str + """ + allowed_values = ["Centimeters", "Inches"] # noqa: E501 + if not measure_unit.isdigit(): + if measure_unit not in allowed_values: + raise ValueError( + "Invalid value for `measure_unit` ({0}), must be one of {1}" # noqa: E501 + .format(measure_unit, allowed_values)) + self._measure_unit = measure_unit + else: + self._measure_unit = allowed_values[int(measure_unit) if six.PY3 else long(measure_unit)] + @property + def pretty_format(self): + """Gets the pretty_format of this OdtSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this OdtSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this OdtSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this OdtSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OdtSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/office_math_link.py b/asposewordscloud/models/office_math_link.py new file mode 100644 index 00000000..31703fe9 --- /dev/null +++ b/asposewordscloud/models/office_math_link.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OfficeMathLink(object): + """OfficeMath object link element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId' + } + + def __init__(self, link=None, node_id=None): # noqa: E501 + """OfficeMathLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + + @property + def link(self): + """Gets the link of this OfficeMathLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this OfficeMathLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this OfficeMathLink. + + Link to the document. # noqa: E501 + + :param link: The link of this OfficeMathLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this OfficeMathLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this OfficeMathLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this OfficeMathLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this OfficeMathLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OfficeMathLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/office_math_object.py b/asposewordscloud/models/office_math_object.py new file mode 100644 index 00000000..9e758ef5 --- /dev/null +++ b/asposewordscloud/models/office_math_object.py @@ -0,0 +1,276 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OfficeMathObject(object): + """OfficeMath object. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'content': 'StoryChildNodes', + 'display_type': 'str', + 'justification': 'str', + 'math_object_type': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'content': 'Content', + 'display_type': 'DisplayType', + 'justification': 'Justification', + 'math_object_type': 'MathObjectType' + } + + def __init__(self, link=None, node_id=None, content=None, display_type=None, justification=None, math_object_type=None): # noqa: E501 + """OfficeMathObject - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._content = None + self._display_type = None + self._justification = None + self._math_object_type = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if content is not None: + self.content = content + if display_type is not None: + self.display_type = display_type + if justification is not None: + self.justification = justification + if math_object_type is not None: + self.math_object_type = math_object_type + + @property + def link(self): + """Gets the link of this OfficeMathObject. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this OfficeMathObject. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this OfficeMathObject. + + Link to the document. # noqa: E501 + + :param link: The link of this OfficeMathObject. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this OfficeMathObject. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this OfficeMathObject. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this OfficeMathObject. + + Node id # noqa: E501 + + :param node_id: The node_id of this OfficeMathObject. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def content(self): + """Gets the content of this OfficeMathObject. # noqa: E501 + + Content of footnote. # noqa: E501 + + :return: The content of this OfficeMathObject. # noqa: E501 + :rtype: StoryChildNodes + """ + return self._content + + @content.setter + def content(self, content): + """Sets the content of this OfficeMathObject. + + Content of footnote. # noqa: E501 + + :param content: The content of this OfficeMathObject. # noqa: E501 + :type: StoryChildNodes + """ + self._content = content + @property + def display_type(self): + """Gets the display_type of this OfficeMathObject. # noqa: E501 + + Gets/sets Office Math display format type which represents whether an equation is displayed inline with the text or displayed on its own line. # noqa: E501 + + :return: The display_type of this OfficeMathObject. # noqa: E501 + :rtype: str + """ + return self._display_type + + @display_type.setter + def display_type(self, display_type): + """Sets the display_type of this OfficeMathObject. + + Gets/sets Office Math display format type which represents whether an equation is displayed inline with the text or displayed on its own line. # noqa: E501 + + :param display_type: The display_type of this OfficeMathObject. # noqa: E501 + :type: str + """ + allowed_values = ["Display", "Inline"] # noqa: E501 + if not display_type.isdigit(): + if display_type not in allowed_values: + raise ValueError( + "Invalid value for `display_type` ({0}), must be one of {1}" # noqa: E501 + .format(display_type, allowed_values)) + self._display_type = display_type + else: + self._display_type = allowed_values[int(display_type) if six.PY3 else long(display_type)] + @property + def justification(self): + """Gets the justification of this OfficeMathObject. # noqa: E501 + + Gets/sets Office Math justification. # noqa: E501 + + :return: The justification of this OfficeMathObject. # noqa: E501 + :rtype: str + """ + return self._justification + + @justification.setter + def justification(self, justification): + """Sets the justification of this OfficeMathObject. + + Gets/sets Office Math justification. # noqa: E501 + + :param justification: The justification of this OfficeMathObject. # noqa: E501 + :type: str + """ + allowed_values = ["CenterGroup", "Default", "Center", "Left", "Right", "Inline"] # noqa: E501 + if not justification.isdigit(): + if justification not in allowed_values: + raise ValueError( + "Invalid value for `justification` ({0}), must be one of {1}" # noqa: E501 + .format(justification, allowed_values)) + self._justification = justification + else: + self._justification = allowed_values[int(justification) if six.PY3 else long(justification)] + @property + def math_object_type(self): + """Gets the math_object_type of this OfficeMathObject. # noqa: E501 + + Gets type Aspose.Words.Math.OfficeMath.MathObjectType of this Office Math object. # noqa: E501 + + :return: The math_object_type of this OfficeMathObject. # noqa: E501 + :rtype: str + """ + return self._math_object_type + + @math_object_type.setter + def math_object_type(self, math_object_type): + """Sets the math_object_type of this OfficeMathObject. + + Gets type Aspose.Words.Math.OfficeMath.MathObjectType of this Office Math object. # noqa: E501 + + :param math_object_type: The math_object_type of this OfficeMathObject. # noqa: E501 + :type: str + """ + allowed_values = ["OMath", "OMathPara", "Accent", "Bar", "BorderBox", "Box", "Delimiter", "Degree", "Argument", "Array", "Fraction", "Denominator", "Numerator", "Function", "FunctionName", "GroupCharacter", "Limit", "LowerLimit", "UpperLimit", "Matrix", "MatrixRow", "NAry", "Phantom", "Radical", "SubscriptPart", "SuperscriptPart", "PreSubSuperscript", "Subscript", "SubSuperscript", "Supercript"] # noqa: E501 + if not math_object_type.isdigit(): + if math_object_type not in allowed_values: + raise ValueError( + "Invalid value for `math_object_type` ({0}), must be one of {1}" # noqa: E501 + .format(math_object_type, allowed_values)) + self._math_object_type = math_object_type + else: + self._math_object_type = allowed_values[int(math_object_type) if six.PY3 else long(math_object_type)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OfficeMathObject): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/office_math_object_response.py b/asposewordscloud/models/office_math_object_response.py new file mode 100644 index 00000000..fd76dc5f --- /dev/null +++ b/asposewordscloud/models/office_math_object_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OfficeMathObjectResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/officeMathObjects/0 + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'office_math_object': 'OfficeMathObject' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'office_math_object': 'OfficeMathObject' + } + + def __init__(self, code=None, status=None, office_math_object=None): # noqa: E501 + """OfficeMathObjectResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._office_math_object = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if office_math_object is not None: + self.office_math_object = office_math_object + + @property + def code(self): + """Gets the code of this OfficeMathObjectResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this OfficeMathObjectResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this OfficeMathObjectResponse. + + Response status code. # noqa: E501 + + :param code: The code of this OfficeMathObjectResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this OfficeMathObjectResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this OfficeMathObjectResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this OfficeMathObjectResponse. + + Response status. # noqa: E501 + + :param status: The status of this OfficeMathObjectResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def office_math_object(self): + """Gets the office_math_object of this OfficeMathObjectResponse. # noqa: E501 + + OfficeMathObject information # noqa: E501 + + :return: The office_math_object of this OfficeMathObjectResponse. # noqa: E501 + :rtype: OfficeMathObject + """ + return self._office_math_object + + @office_math_object.setter + def office_math_object(self, office_math_object): + """Sets the office_math_object of this OfficeMathObjectResponse. + + OfficeMathObject information # noqa: E501 + + :param office_math_object: The office_math_object of this OfficeMathObjectResponse. # noqa: E501 + :type: OfficeMathObject + """ + self._office_math_object = office_math_object + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OfficeMathObjectResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/office_math_objects_collection.py b/asposewordscloud/models/office_math_objects_collection.py new file mode 100644 index 00000000..601edbdb --- /dev/null +++ b/asposewordscloud/models/office_math_objects_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OfficeMathObjectsCollection(object): + """Collection of OfficeMath objects. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[OfficeMathObject]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """OfficeMathObjectsCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this OfficeMathObjectsCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this OfficeMathObjectsCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this OfficeMathObjectsCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this OfficeMathObjectsCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this OfficeMathObjectsCollection. # noqa: E501 + + Collection of OfficeMath objects. # noqa: E501 + + :return: The list of this OfficeMathObjectsCollection. # noqa: E501 + :rtype: list[OfficeMathObject] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this OfficeMathObjectsCollection. + + Collection of OfficeMath objects. # noqa: E501 + + :param list: The list of this OfficeMathObjectsCollection. # noqa: E501 + :type: list[OfficeMathObject] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OfficeMathObjectsCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/office_math_objects_response.py b/asposewordscloud/models/office_math_objects_response.py new file mode 100644 index 00000000..70978d8f --- /dev/null +++ b/asposewordscloud/models/office_math_objects_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OfficeMathObjectsResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/OfficeMathObjects + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'office_math_objects': 'OfficeMathObjectsCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'office_math_objects': 'OfficeMathObjects' + } + + def __init__(self, code=None, status=None, office_math_objects=None): # noqa: E501 + """OfficeMathObjectsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._office_math_objects = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if office_math_objects is not None: + self.office_math_objects = office_math_objects + + @property + def code(self): + """Gets the code of this OfficeMathObjectsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this OfficeMathObjectsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this OfficeMathObjectsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this OfficeMathObjectsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this OfficeMathObjectsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this OfficeMathObjectsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this OfficeMathObjectsResponse. + + Response status. # noqa: E501 + + :param status: The status of this OfficeMathObjectsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def office_math_objects(self): + """Gets the office_math_objects of this OfficeMathObjectsResponse. # noqa: E501 + + Collection of OfficeMath objects. # noqa: E501 + + :return: The office_math_objects of this OfficeMathObjectsResponse. # noqa: E501 + :rtype: OfficeMathObjectsCollection + """ + return self._office_math_objects + + @office_math_objects.setter + def office_math_objects(self, office_math_objects): + """Sets the office_math_objects of this OfficeMathObjectsResponse. + + Collection of OfficeMath objects. # noqa: E501 + + :param office_math_objects: The office_math_objects of this OfficeMathObjectsResponse. # noqa: E501 + :type: OfficeMathObjectsCollection + """ + self._office_math_objects = office_math_objects + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OfficeMathObjectsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/ooxml_save_options_data.py b/asposewordscloud/models/ooxml_save_options_data.py new file mode 100644 index 00000000..3a27e8c1 --- /dev/null +++ b/asposewordscloud/models/ooxml_save_options_data.py @@ -0,0 +1,408 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OoxmlSaveOptionsData(object): + """container class for docx/docm/dotx/dotm/flatopc save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'compliance': 'str', + 'password': 'str', + 'pretty_format': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'compliance': 'Compliance', + 'password': 'Password', + 'pretty_format': 'PrettyFormat' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, compliance=None, password=None, pretty_format=None): # noqa: E501 + """OoxmlSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._compliance = None + self._password = None + self._pretty_format = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if compliance is not None: + self.compliance = compliance + if password is not None: + self.password = password + if pretty_format is not None: + self.pretty_format = pretty_format + + @property + def color_mode(self): + """Gets the color_mode of this OoxmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this OoxmlSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this OoxmlSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this OoxmlSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this OoxmlSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this OoxmlSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this OoxmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this OoxmlSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this OoxmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this OoxmlSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this OoxmlSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this OoxmlSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this OoxmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this OoxmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this OoxmlSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this OoxmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this OoxmlSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this OoxmlSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this OoxmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this OoxmlSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this OoxmlSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this OoxmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def compliance(self): + """Gets the compliance of this OoxmlSaveOptionsData. # noqa: E501 + + Specifies the OOXML version for the output document # noqa: E501 + + :return: The compliance of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._compliance + + @compliance.setter + def compliance(self, compliance): + """Sets the compliance of this OoxmlSaveOptionsData. + + Specifies the OOXML version for the output document # noqa: E501 + + :param compliance: The compliance of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._compliance = compliance + @property + def password(self): + """Gets the password of this OoxmlSaveOptionsData. # noqa: E501 + + Specifies a password to encrypt document using ECMA376 Standard encryption algorithm # noqa: E501 + + :return: The password of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._password + + @password.setter + def password(self, password): + """Sets the password of this OoxmlSaveOptionsData. + + Specifies a password to encrypt document using ECMA376 Standard encryption algorithm # noqa: E501 + + :param password: The password of this OoxmlSaveOptionsData. # noqa: E501 + :type: str + """ + self._password = password + @property + def pretty_format(self): + """Gets the pretty_format of this OoxmlSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this OoxmlSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this OoxmlSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this OoxmlSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OoxmlSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/outline_options_data.py b/asposewordscloud/models/outline_options_data.py new file mode 100644 index 00000000..5fea5571 --- /dev/null +++ b/asposewordscloud/models/outline_options_data.py @@ -0,0 +1,226 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class OutlineOptionsData(object): + """container class for outline options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'bookmarks_outline_levels': 'list[BookmarksOutlineLevelData]', + 'default_bookmarks_outline_level': 'int', + 'create_missing_outline_levels': 'bool', + 'expanded_outline_levels': 'int', + 'headings_outline_levels': 'int' + } + + attribute_map = { + 'bookmarks_outline_levels': 'BookmarksOutlineLevels', + 'default_bookmarks_outline_level': 'DefaultBookmarksOutlineLevel', + 'create_missing_outline_levels': 'CreateMissingOutlineLevels', + 'expanded_outline_levels': 'ExpandedOutlineLevels', + 'headings_outline_levels': 'HeadingsOutlineLevels' + } + + def __init__(self, bookmarks_outline_levels=None, default_bookmarks_outline_level=None, create_missing_outline_levels=None, expanded_outline_levels=None, headings_outline_levels=None): # noqa: E501 + """OutlineOptionsData - a model defined in Swagger""" # noqa: E501 + + self._bookmarks_outline_levels = None + self._default_bookmarks_outline_level = None + self._create_missing_outline_levels = None + self._expanded_outline_levels = None + self._headings_outline_levels = None + self.discriminator = None + + if bookmarks_outline_levels is not None: + self.bookmarks_outline_levels = bookmarks_outline_levels + if default_bookmarks_outline_level is not None: + self.default_bookmarks_outline_level = default_bookmarks_outline_level + if create_missing_outline_levels is not None: + self.create_missing_outline_levels = create_missing_outline_levels + if expanded_outline_levels is not None: + self.expanded_outline_levels = expanded_outline_levels + if headings_outline_levels is not None: + self.headings_outline_levels = headings_outline_levels + + @property + def bookmarks_outline_levels(self): + """Gets the bookmarks_outline_levels of this OutlineOptionsData. # noqa: E501 + + Allows to specify individual bookmarks outline level # noqa: E501 + + :return: The bookmarks_outline_levels of this OutlineOptionsData. # noqa: E501 + :rtype: list[BookmarksOutlineLevelData] + """ + return self._bookmarks_outline_levels + + @bookmarks_outline_levels.setter + def bookmarks_outline_levels(self, bookmarks_outline_levels): + """Sets the bookmarks_outline_levels of this OutlineOptionsData. + + Allows to specify individual bookmarks outline level # noqa: E501 + + :param bookmarks_outline_levels: The bookmarks_outline_levels of this OutlineOptionsData. # noqa: E501 + :type: list[BookmarksOutlineLevelData] + """ + self._bookmarks_outline_levels = bookmarks_outline_levels + @property + def default_bookmarks_outline_level(self): + """Gets the default_bookmarks_outline_level of this OutlineOptionsData. # noqa: E501 + + Specifies the default level in the document outline at which to display Word bookmarks # noqa: E501 + + :return: The default_bookmarks_outline_level of this OutlineOptionsData. # noqa: E501 + :rtype: int + """ + return self._default_bookmarks_outline_level + + @default_bookmarks_outline_level.setter + def default_bookmarks_outline_level(self, default_bookmarks_outline_level): + """Sets the default_bookmarks_outline_level of this OutlineOptionsData. + + Specifies the default level in the document outline at which to display Word bookmarks # noqa: E501 + + :param default_bookmarks_outline_level: The default_bookmarks_outline_level of this OutlineOptionsData. # noqa: E501 + :type: int + """ + self._default_bookmarks_outline_level = default_bookmarks_outline_level + @property + def create_missing_outline_levels(self): + """Gets the create_missing_outline_levels of this OutlineOptionsData. # noqa: E501 + + Gets or sets a value determining whether or not to create missing outline levels when the document is exported. Default value for this property is false. # noqa: E501 + + :return: The create_missing_outline_levels of this OutlineOptionsData. # noqa: E501 + :rtype: bool + """ + return self._create_missing_outline_levels + + @create_missing_outline_levels.setter + def create_missing_outline_levels(self, create_missing_outline_levels): + """Sets the create_missing_outline_levels of this OutlineOptionsData. + + Gets or sets a value determining whether or not to create missing outline levels when the document is exported. Default value for this property is false. # noqa: E501 + + :param create_missing_outline_levels: The create_missing_outline_levels of this OutlineOptionsData. # noqa: E501 + :type: bool + """ + self._create_missing_outline_levels = create_missing_outline_levels + @property + def expanded_outline_levels(self): + """Gets the expanded_outline_levels of this OutlineOptionsData. # noqa: E501 + + Specifies how many levels in the document outline to show expanded when the file is viewed # noqa: E501 + + :return: The expanded_outline_levels of this OutlineOptionsData. # noqa: E501 + :rtype: int + """ + return self._expanded_outline_levels + + @expanded_outline_levels.setter + def expanded_outline_levels(self, expanded_outline_levels): + """Sets the expanded_outline_levels of this OutlineOptionsData. + + Specifies how many levels in the document outline to show expanded when the file is viewed # noqa: E501 + + :param expanded_outline_levels: The expanded_outline_levels of this OutlineOptionsData. # noqa: E501 + :type: int + """ + self._expanded_outline_levels = expanded_outline_levels + @property + def headings_outline_levels(self): + """Gets the headings_outline_levels of this OutlineOptionsData. # noqa: E501 + + Specifies how many levels of headings (paragraphs formatted with the Heading styles) to include in the document outline # noqa: E501 + + :return: The headings_outline_levels of this OutlineOptionsData. # noqa: E501 + :rtype: int + """ + return self._headings_outline_levels + + @headings_outline_levels.setter + def headings_outline_levels(self, headings_outline_levels): + """Sets the headings_outline_levels of this OutlineOptionsData. + + Specifies how many levels of headings (paragraphs formatted with the Heading styles) to include in the document outline # noqa: E501 + + :param headings_outline_levels: The headings_outline_levels of this OutlineOptionsData. # noqa: E501 + :type: int + """ + self._headings_outline_levels = headings_outline_levels + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, OutlineOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/page_number.py b/asposewordscloud/models/page_number.py new file mode 100644 index 00000000..5e0199b0 --- /dev/null +++ b/asposewordscloud/models/page_number.py @@ -0,0 +1,204 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PageNumber(object): + """Class is used for insert page number request building. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'format': 'str', + 'alignment': 'str', + 'is_top': 'bool', + 'set_page_number_on_first_page': 'bool' + } + + attribute_map = { + 'format': 'Format', + 'alignment': 'Alignment', + 'is_top': 'IsTop', + 'set_page_number_on_first_page': 'SetPageNumberOnFirstPage' + } + + def __init__(self, format=None, alignment=None, is_top=None, set_page_number_on_first_page=None): # noqa: E501 + """PageNumber - a model defined in Swagger""" # noqa: E501 + + self._format = None + self._alignment = None + self._is_top = None + self._set_page_number_on_first_page = None + self.discriminator = None + + if format is not None: + self.format = format + if alignment is not None: + self.alignment = alignment + if is_top is not None: + self.is_top = is_top + if set_page_number_on_first_page is not None: + self.set_page_number_on_first_page = set_page_number_on_first_page + + @property + def format(self): + """Gets the format of this PageNumber. # noqa: E501 + + Page number format, e.g. \"{PAGE} of {NUMPAGES}\". # noqa: E501 + + :return: The format of this PageNumber. # noqa: E501 + :rtype: str + """ + return self._format + + @format.setter + def format(self, format): + """Sets the format of this PageNumber. + + Page number format, e.g. \"{PAGE} of {NUMPAGES}\". # noqa: E501 + + :param format: The format of this PageNumber. # noqa: E501 + :type: str + """ + self._format = format + @property + def alignment(self): + """Gets the alignment of this PageNumber. # noqa: E501 + + Text alignment, possible values are left, right, center or justify. # noqa: E501 + + :return: The alignment of this PageNumber. # noqa: E501 + :rtype: str + """ + return self._alignment + + @alignment.setter + def alignment(self, alignment): + """Sets the alignment of this PageNumber. + + Text alignment, possible values are left, right, center or justify. # noqa: E501 + + :param alignment: The alignment of this PageNumber. # noqa: E501 + :type: str + """ + self._alignment = alignment + @property + def is_top(self): + """Gets the is_top of this PageNumber. # noqa: E501 + + If true the page number is added at the top of the page, else at the bottom. # noqa: E501 + + :return: The is_top of this PageNumber. # noqa: E501 + :rtype: bool + """ + return self._is_top + + @is_top.setter + def is_top(self, is_top): + """Sets the is_top of this PageNumber. + + If true the page number is added at the top of the page, else at the bottom. # noqa: E501 + + :param is_top: The is_top of this PageNumber. # noqa: E501 + :type: bool + """ + if is_top is None: + raise ValueError("Invalid value for `is_top`, must not be `None`") # noqa: E501 + self._is_top = is_top + @property + def set_page_number_on_first_page(self): + """Gets the set_page_number_on_first_page of this PageNumber. # noqa: E501 + + If true the page number is added on first page too. # noqa: E501 + + :return: The set_page_number_on_first_page of this PageNumber. # noqa: E501 + :rtype: bool + """ + return self._set_page_number_on_first_page + + @set_page_number_on_first_page.setter + def set_page_number_on_first_page(self, set_page_number_on_first_page): + """Sets the set_page_number_on_first_page of this PageNumber. + + If true the page number is added on first page too. # noqa: E501 + + :param set_page_number_on_first_page: The set_page_number_on_first_page of this PageNumber. # noqa: E501 + :type: bool + """ + if set_page_number_on_first_page is None: + raise ValueError("Invalid value for `set_page_number_on_first_page`, must not be `None`") # noqa: E501 + self._set_page_number_on_first_page = set_page_number_on_first_page + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PageNumber): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/page_setup.py b/asposewordscloud/models/page_setup.py new file mode 100644 index 00000000..721482be --- /dev/null +++ b/asposewordscloud/models/page_setup.py @@ -0,0 +1,940 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PageSetup(object): + """Represents the page setup properties of a section. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'bidi': 'bool', + 'border_always_in_front': 'bool', + 'border_applies_to': 'str', + 'border_distance_from': 'str', + 'bottom_margin': 'float', + 'different_first_page_header_footer': 'bool', + 'first_page_tray': 'int', + 'footer_distance': 'float', + 'gutter': 'float', + 'header_distance': 'float', + 'left_margin': 'float', + 'line_number_count_by': 'int', + 'line_number_distance_from_text': 'float', + 'line_number_restart_mode': 'str', + 'line_starting_number': 'int', + 'orientation': 'str', + 'other_pages_tray': 'int', + 'page_height': 'float', + 'page_number_style': 'str', + 'page_starting_number': 'int', + 'page_width': 'float', + 'paper_size': 'str', + 'restart_page_numbering': 'bool', + 'right_margin': 'float', + 'rtl_gutter': 'bool', + 'section_start': 'str', + 'suppress_endnotes': 'bool', + 'top_margin': 'float', + 'vertical_alignment': 'str' + } + + attribute_map = { + 'link': 'link', + 'bidi': 'Bidi', + 'border_always_in_front': 'BorderAlwaysInFront', + 'border_applies_to': 'BorderAppliesTo', + 'border_distance_from': 'BorderDistanceFrom', + 'bottom_margin': 'BottomMargin', + 'different_first_page_header_footer': 'DifferentFirstPageHeaderFooter', + 'first_page_tray': 'FirstPageTray', + 'footer_distance': 'FooterDistance', + 'gutter': 'Gutter', + 'header_distance': 'HeaderDistance', + 'left_margin': 'LeftMargin', + 'line_number_count_by': 'LineNumberCountBy', + 'line_number_distance_from_text': 'LineNumberDistanceFromText', + 'line_number_restart_mode': 'LineNumberRestartMode', + 'line_starting_number': 'LineStartingNumber', + 'orientation': 'Orientation', + 'other_pages_tray': 'OtherPagesTray', + 'page_height': 'PageHeight', + 'page_number_style': 'PageNumberStyle', + 'page_starting_number': 'PageStartingNumber', + 'page_width': 'PageWidth', + 'paper_size': 'PaperSize', + 'restart_page_numbering': 'RestartPageNumbering', + 'right_margin': 'RightMargin', + 'rtl_gutter': 'RtlGutter', + 'section_start': 'SectionStart', + 'suppress_endnotes': 'SuppressEndnotes', + 'top_margin': 'TopMargin', + 'vertical_alignment': 'VerticalAlignment' + } + + def __init__(self, link=None, bidi=None, border_always_in_front=None, border_applies_to=None, border_distance_from=None, bottom_margin=None, different_first_page_header_footer=None, first_page_tray=None, footer_distance=None, gutter=None, header_distance=None, left_margin=None, line_number_count_by=None, line_number_distance_from_text=None, line_number_restart_mode=None, line_starting_number=None, orientation=None, other_pages_tray=None, page_height=None, page_number_style=None, page_starting_number=None, page_width=None, paper_size=None, restart_page_numbering=None, right_margin=None, rtl_gutter=None, section_start=None, suppress_endnotes=None, top_margin=None, vertical_alignment=None): # noqa: E501 + """PageSetup - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._bidi = None + self._border_always_in_front = None + self._border_applies_to = None + self._border_distance_from = None + self._bottom_margin = None + self._different_first_page_header_footer = None + self._first_page_tray = None + self._footer_distance = None + self._gutter = None + self._header_distance = None + self._left_margin = None + self._line_number_count_by = None + self._line_number_distance_from_text = None + self._line_number_restart_mode = None + self._line_starting_number = None + self._orientation = None + self._other_pages_tray = None + self._page_height = None + self._page_number_style = None + self._page_starting_number = None + self._page_width = None + self._paper_size = None + self._restart_page_numbering = None + self._right_margin = None + self._rtl_gutter = None + self._section_start = None + self._suppress_endnotes = None + self._top_margin = None + self._vertical_alignment = None + self.discriminator = None + + if link is not None: + self.link = link + if bidi is not None: + self.bidi = bidi + if border_always_in_front is not None: + self.border_always_in_front = border_always_in_front + if border_applies_to is not None: + self.border_applies_to = border_applies_to + if border_distance_from is not None: + self.border_distance_from = border_distance_from + if bottom_margin is not None: + self.bottom_margin = bottom_margin + if different_first_page_header_footer is not None: + self.different_first_page_header_footer = different_first_page_header_footer + if first_page_tray is not None: + self.first_page_tray = first_page_tray + if footer_distance is not None: + self.footer_distance = footer_distance + if gutter is not None: + self.gutter = gutter + if header_distance is not None: + self.header_distance = header_distance + if left_margin is not None: + self.left_margin = left_margin + if line_number_count_by is not None: + self.line_number_count_by = line_number_count_by + if line_number_distance_from_text is not None: + self.line_number_distance_from_text = line_number_distance_from_text + if line_number_restart_mode is not None: + self.line_number_restart_mode = line_number_restart_mode + if line_starting_number is not None: + self.line_starting_number = line_starting_number + if orientation is not None: + self.orientation = orientation + if other_pages_tray is not None: + self.other_pages_tray = other_pages_tray + if page_height is not None: + self.page_height = page_height + if page_number_style is not None: + self.page_number_style = page_number_style + if page_starting_number is not None: + self.page_starting_number = page_starting_number + if page_width is not None: + self.page_width = page_width + if paper_size is not None: + self.paper_size = paper_size + if restart_page_numbering is not None: + self.restart_page_numbering = restart_page_numbering + if right_margin is not None: + self.right_margin = right_margin + if rtl_gutter is not None: + self.rtl_gutter = rtl_gutter + if section_start is not None: + self.section_start = section_start + if suppress_endnotes is not None: + self.suppress_endnotes = suppress_endnotes + if top_margin is not None: + self.top_margin = top_margin + if vertical_alignment is not None: + self.vertical_alignment = vertical_alignment + + @property + def link(self): + """Gets the link of this PageSetup. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this PageSetup. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this PageSetup. + + Link to the document. # noqa: E501 + + :param link: The link of this PageSetup. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def bidi(self): + """Gets the bidi of this PageSetup. # noqa: E501 + + Specifies that this section contains bidirectional (complex scripts) text. # noqa: E501 + + :return: The bidi of this PageSetup. # noqa: E501 + :rtype: bool + """ + return self._bidi + + @bidi.setter + def bidi(self, bidi): + """Sets the bidi of this PageSetup. + + Specifies that this section contains bidirectional (complex scripts) text. # noqa: E501 + + :param bidi: The bidi of this PageSetup. # noqa: E501 + :type: bool + """ + self._bidi = bidi + @property + def border_always_in_front(self): + """Gets the border_always_in_front of this PageSetup. # noqa: E501 + + Specifies where the page border is positioned relative to intersecting texts and objects. # noqa: E501 + + :return: The border_always_in_front of this PageSetup. # noqa: E501 + :rtype: bool + """ + return self._border_always_in_front + + @border_always_in_front.setter + def border_always_in_front(self, border_always_in_front): + """Sets the border_always_in_front of this PageSetup. + + Specifies where the page border is positioned relative to intersecting texts and objects. # noqa: E501 + + :param border_always_in_front: The border_always_in_front of this PageSetup. # noqa: E501 + :type: bool + """ + self._border_always_in_front = border_always_in_front + @property + def border_applies_to(self): + """Gets the border_applies_to of this PageSetup. # noqa: E501 + + Specifies which pages the page border is printed on. # noqa: E501 + + :return: The border_applies_to of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._border_applies_to + + @border_applies_to.setter + def border_applies_to(self, border_applies_to): + """Sets the border_applies_to of this PageSetup. + + Specifies which pages the page border is printed on. # noqa: E501 + + :param border_applies_to: The border_applies_to of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["AllPages", "FirstPage", "OtherPages"] # noqa: E501 + if not border_applies_to.isdigit(): + if border_applies_to not in allowed_values: + raise ValueError( + "Invalid value for `border_applies_to` ({0}), must be one of {1}" # noqa: E501 + .format(border_applies_to, allowed_values)) + self._border_applies_to = border_applies_to + else: + self._border_applies_to = allowed_values[int(border_applies_to) if six.PY3 else long(border_applies_to)] + @property + def border_distance_from(self): + """Gets the border_distance_from of this PageSetup. # noqa: E501 + + Gets or sets a value that indicates whether the specified page border is measured from the edge of the page or from the text it surrounds. # noqa: E501 + + :return: The border_distance_from of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._border_distance_from + + @border_distance_from.setter + def border_distance_from(self, border_distance_from): + """Sets the border_distance_from of this PageSetup. + + Gets or sets a value that indicates whether the specified page border is measured from the edge of the page or from the text it surrounds. # noqa: E501 + + :param border_distance_from: The border_distance_from of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["Text", "PageEdge"] # noqa: E501 + if not border_distance_from.isdigit(): + if border_distance_from not in allowed_values: + raise ValueError( + "Invalid value for `border_distance_from` ({0}), must be one of {1}" # noqa: E501 + .format(border_distance_from, allowed_values)) + self._border_distance_from = border_distance_from + else: + self._border_distance_from = allowed_values[int(border_distance_from) if six.PY3 else long(border_distance_from)] + @property + def bottom_margin(self): + """Gets the bottom_margin of this PageSetup. # noqa: E501 + + Returns or sets the distance (in points) between the bottom edge of the page and the bottom boundary of the body text. # noqa: E501 + + :return: The bottom_margin of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._bottom_margin + + @bottom_margin.setter + def bottom_margin(self, bottom_margin): + """Sets the bottom_margin of this PageSetup. + + Returns or sets the distance (in points) between the bottom edge of the page and the bottom boundary of the body text. # noqa: E501 + + :param bottom_margin: The bottom_margin of this PageSetup. # noqa: E501 + :type: float + """ + self._bottom_margin = bottom_margin + @property + def different_first_page_header_footer(self): + """Gets the different_first_page_header_footer of this PageSetup. # noqa: E501 + + True if a different header or footer is used on the first page. # noqa: E501 + + :return: The different_first_page_header_footer of this PageSetup. # noqa: E501 + :rtype: bool + """ + return self._different_first_page_header_footer + + @different_first_page_header_footer.setter + def different_first_page_header_footer(self, different_first_page_header_footer): + """Sets the different_first_page_header_footer of this PageSetup. + + True if a different header or footer is used on the first page. # noqa: E501 + + :param different_first_page_header_footer: The different_first_page_header_footer of this PageSetup. # noqa: E501 + :type: bool + """ + self._different_first_page_header_footer = different_first_page_header_footer + @property + def first_page_tray(self): + """Gets the first_page_tray of this PageSetup. # noqa: E501 + + Gets or sets the paper tray (bin) to use for the first page of a section. The value is implementation (printer) specific. # noqa: E501 + + :return: The first_page_tray of this PageSetup. # noqa: E501 + :rtype: int + """ + return self._first_page_tray + + @first_page_tray.setter + def first_page_tray(self, first_page_tray): + """Sets the first_page_tray of this PageSetup. + + Gets or sets the paper tray (bin) to use for the first page of a section. The value is implementation (printer) specific. # noqa: E501 + + :param first_page_tray: The first_page_tray of this PageSetup. # noqa: E501 + :type: int + """ + self._first_page_tray = first_page_tray + @property + def footer_distance(self): + """Gets the footer_distance of this PageSetup. # noqa: E501 + + Returns or sets the distance (in points) between the footer and the bottom of the page. # noqa: E501 + + :return: The footer_distance of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._footer_distance + + @footer_distance.setter + def footer_distance(self, footer_distance): + """Sets the footer_distance of this PageSetup. + + Returns or sets the distance (in points) between the footer and the bottom of the page. # noqa: E501 + + :param footer_distance: The footer_distance of this PageSetup. # noqa: E501 + :type: float + """ + self._footer_distance = footer_distance + @property + def gutter(self): + """Gets the gutter of this PageSetup. # noqa: E501 + + Gets or sets the amount of extra space added to the margin for document binding. # noqa: E501 + + :return: The gutter of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._gutter + + @gutter.setter + def gutter(self, gutter): + """Sets the gutter of this PageSetup. + + Gets or sets the amount of extra space added to the margin for document binding. # noqa: E501 + + :param gutter: The gutter of this PageSetup. # noqa: E501 + :type: float + """ + self._gutter = gutter + @property + def header_distance(self): + """Gets the header_distance of this PageSetup. # noqa: E501 + + Returns or sets the distance (in points) between the header and the top of the page. # noqa: E501 + + :return: The header_distance of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._header_distance + + @header_distance.setter + def header_distance(self, header_distance): + """Sets the header_distance of this PageSetup. + + Returns or sets the distance (in points) between the header and the top of the page. # noqa: E501 + + :param header_distance: The header_distance of this PageSetup. # noqa: E501 + :type: float + """ + self._header_distance = header_distance + @property + def left_margin(self): + """Gets the left_margin of this PageSetup. # noqa: E501 + + Returns or sets the distance (in points) between the left edge of the page and the left boundary of the body text. # noqa: E501 + + :return: The left_margin of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._left_margin + + @left_margin.setter + def left_margin(self, left_margin): + """Sets the left_margin of this PageSetup. + + Returns or sets the distance (in points) between the left edge of the page and the left boundary of the body text. # noqa: E501 + + :param left_margin: The left_margin of this PageSetup. # noqa: E501 + :type: float + """ + self._left_margin = left_margin + @property + def line_number_count_by(self): + """Gets the line_number_count_by of this PageSetup. # noqa: E501 + + Returns or sets the numeric increment for line numbers. # noqa: E501 + + :return: The line_number_count_by of this PageSetup. # noqa: E501 + :rtype: int + """ + return self._line_number_count_by + + @line_number_count_by.setter + def line_number_count_by(self, line_number_count_by): + """Sets the line_number_count_by of this PageSetup. + + Returns or sets the numeric increment for line numbers. # noqa: E501 + + :param line_number_count_by: The line_number_count_by of this PageSetup. # noqa: E501 + :type: int + """ + self._line_number_count_by = line_number_count_by + @property + def line_number_distance_from_text(self): + """Gets the line_number_distance_from_text of this PageSetup. # noqa: E501 + + Gets or sets distance between the right edge of line numbers and the left edge of the document. # noqa: E501 + + :return: The line_number_distance_from_text of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._line_number_distance_from_text + + @line_number_distance_from_text.setter + def line_number_distance_from_text(self, line_number_distance_from_text): + """Sets the line_number_distance_from_text of this PageSetup. + + Gets or sets distance between the right edge of line numbers and the left edge of the document. # noqa: E501 + + :param line_number_distance_from_text: The line_number_distance_from_text of this PageSetup. # noqa: E501 + :type: float + """ + self._line_number_distance_from_text = line_number_distance_from_text + @property + def line_number_restart_mode(self): + """Gets the line_number_restart_mode of this PageSetup. # noqa: E501 + + Gets or sets the way line numbering runs that is, whether it starts over at the beginning of a new page or section or runs continuously. # noqa: E501 + + :return: The line_number_restart_mode of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._line_number_restart_mode + + @line_number_restart_mode.setter + def line_number_restart_mode(self, line_number_restart_mode): + """Sets the line_number_restart_mode of this PageSetup. + + Gets or sets the way line numbering runs that is, whether it starts over at the beginning of a new page or section or runs continuously. # noqa: E501 + + :param line_number_restart_mode: The line_number_restart_mode of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["RestartPage", "RestartSection", "Continuous"] # noqa: E501 + if not line_number_restart_mode.isdigit(): + if line_number_restart_mode not in allowed_values: + raise ValueError( + "Invalid value for `line_number_restart_mode` ({0}), must be one of {1}" # noqa: E501 + .format(line_number_restart_mode, allowed_values)) + self._line_number_restart_mode = line_number_restart_mode + else: + self._line_number_restart_mode = allowed_values[int(line_number_restart_mode) if six.PY3 else long(line_number_restart_mode)] + @property + def line_starting_number(self): + """Gets the line_starting_number of this PageSetup. # noqa: E501 + + Gets or sets the starting line number. # noqa: E501 + + :return: The line_starting_number of this PageSetup. # noqa: E501 + :rtype: int + """ + return self._line_starting_number + + @line_starting_number.setter + def line_starting_number(self, line_starting_number): + """Sets the line_starting_number of this PageSetup. + + Gets or sets the starting line number. # noqa: E501 + + :param line_starting_number: The line_starting_number of this PageSetup. # noqa: E501 + :type: int + """ + self._line_starting_number = line_starting_number + @property + def orientation(self): + """Gets the orientation of this PageSetup. # noqa: E501 + + Returns or sets the orientation of the page. # noqa: E501 + + :return: The orientation of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._orientation + + @orientation.setter + def orientation(self, orientation): + """Sets the orientation of this PageSetup. + + Returns or sets the orientation of the page. # noqa: E501 + + :param orientation: The orientation of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["Portrait", "Landscape"] # noqa: E501 + if not orientation.isdigit(): + if orientation not in allowed_values: + raise ValueError( + "Invalid value for `orientation` ({0}), must be one of {1}" # noqa: E501 + .format(orientation, allowed_values)) + self._orientation = orientation + else: + self._orientation = allowed_values[int(orientation) if six.PY3 else long(orientation)] + @property + def other_pages_tray(self): + """Gets the other_pages_tray of this PageSetup. # noqa: E501 + + Gets or sets the paper tray (bin) to be used for all but the first page of a section. The value is implementation (printer) specific. # noqa: E501 + + :return: The other_pages_tray of this PageSetup. # noqa: E501 + :rtype: int + """ + return self._other_pages_tray + + @other_pages_tray.setter + def other_pages_tray(self, other_pages_tray): + """Sets the other_pages_tray of this PageSetup. + + Gets or sets the paper tray (bin) to be used for all but the first page of a section. The value is implementation (printer) specific. # noqa: E501 + + :param other_pages_tray: The other_pages_tray of this PageSetup. # noqa: E501 + :type: int + """ + self._other_pages_tray = other_pages_tray + @property + def page_height(self): + """Gets the page_height of this PageSetup. # noqa: E501 + + Returns or sets the height of the page in points. # noqa: E501 + + :return: The page_height of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._page_height + + @page_height.setter + def page_height(self, page_height): + """Sets the page_height of this PageSetup. + + Returns or sets the height of the page in points. # noqa: E501 + + :param page_height: The page_height of this PageSetup. # noqa: E501 + :type: float + """ + self._page_height = page_height + @property + def page_number_style(self): + """Gets the page_number_style of this PageSetup. # noqa: E501 + + Gets or sets the page number format. # noqa: E501 + + :return: The page_number_style of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._page_number_style + + @page_number_style.setter + def page_number_style(self, page_number_style): + """Sets the page_number_style of this PageSetup. + + Gets or sets the page number format. # noqa: E501 + + :param page_number_style: The page_number_style of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["Arabic", "UppercaseRoman", "LowercaseRoman", "UppercaseLetter", "LowercaseLetter", "Ordinal", "Number", "OrdinalText", "Hex", "ChicagoManual", "Kanji", "KanjiDigit", "AiueoHalfWidth", "IrohaHalfWidth", "ArabicFullWidth", "ArabicHalfWidth", "KanjiTraditional", "KanjiTraditional2", "NumberInCircle", "DecimalFullWidth", "Aiueo", "Iroha", "LeadingZero", "Bullet", "Ganada", "Chosung", "GB1", "GB2", "GB3", "GB4", "Zodiac1", "Zodiac2", "Zodiac3", "TradChinNum1", "TradChinNum2", "TradChinNum3", "TradChinNum4", "SimpChinNum1", "SimpChinNum2", "SimpChinNum3", "SimpChinNum4", "HanjaRead", "HanjaReadDigit", "Hangul", "Hanja", "Hebrew1", "Arabic1", "Hebrew2", "Arabic2", "HindiLetter1", "HindiLetter2", "HindiArabic", "HindiCardinalText", "ThaiLetter", "ThaiArabic", "ThaiCardinalText", "VietCardinalText", "NumberInDash", "NumInDash", "LowercaseRussian", "UppercaseRussian", "None", "Custom"] # noqa: E501 + if not page_number_style.isdigit(): + if page_number_style not in allowed_values: + raise ValueError( + "Invalid value for `page_number_style` ({0}), must be one of {1}" # noqa: E501 + .format(page_number_style, allowed_values)) + self._page_number_style = page_number_style + else: + self._page_number_style = allowed_values[int(page_number_style) if six.PY3 else long(page_number_style)] + @property + def page_starting_number(self): + """Gets the page_starting_number of this PageSetup. # noqa: E501 + + Gets or sets the starting page number of the section. # noqa: E501 + + :return: The page_starting_number of this PageSetup. # noqa: E501 + :rtype: int + """ + return self._page_starting_number + + @page_starting_number.setter + def page_starting_number(self, page_starting_number): + """Sets the page_starting_number of this PageSetup. + + Gets or sets the starting page number of the section. # noqa: E501 + + :param page_starting_number: The page_starting_number of this PageSetup. # noqa: E501 + :type: int + """ + self._page_starting_number = page_starting_number + @property + def page_width(self): + """Gets the page_width of this PageSetup. # noqa: E501 + + Returns or sets the width of the page in points. # noqa: E501 + + :return: The page_width of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._page_width + + @page_width.setter + def page_width(self, page_width): + """Sets the page_width of this PageSetup. + + Returns or sets the width of the page in points. # noqa: E501 + + :param page_width: The page_width of this PageSetup. # noqa: E501 + :type: float + """ + self._page_width = page_width + @property + def paper_size(self): + """Gets the paper_size of this PageSetup. # noqa: E501 + + Returns or sets the paper size. # noqa: E501 + + :return: The paper_size of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._paper_size + + @paper_size.setter + def paper_size(self, paper_size): + """Sets the paper_size of this PageSetup. + + Returns or sets the paper size. # noqa: E501 + + :param paper_size: The paper_size of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["A3", "A4", "A5", "B4", "B5", "Executive", "Folio", "Ledger", "Legal", "Letter", "EnvelopeDL", "Quarto", "Statement", "Tabloid", "Paper10x14", "Paper11x17", "Custom"] # noqa: E501 + if not paper_size.isdigit(): + if paper_size not in allowed_values: + raise ValueError( + "Invalid value for `paper_size` ({0}), must be one of {1}" # noqa: E501 + .format(paper_size, allowed_values)) + self._paper_size = paper_size + else: + self._paper_size = allowed_values[int(paper_size) if six.PY3 else long(paper_size)] + @property + def restart_page_numbering(self): + """Gets the restart_page_numbering of this PageSetup. # noqa: E501 + + True if page numbering restarts at the beginning of the section. # noqa: E501 + + :return: The restart_page_numbering of this PageSetup. # noqa: E501 + :rtype: bool + """ + return self._restart_page_numbering + + @restart_page_numbering.setter + def restart_page_numbering(self, restart_page_numbering): + """Sets the restart_page_numbering of this PageSetup. + + True if page numbering restarts at the beginning of the section. # noqa: E501 + + :param restart_page_numbering: The restart_page_numbering of this PageSetup. # noqa: E501 + :type: bool + """ + self._restart_page_numbering = restart_page_numbering + @property + def right_margin(self): + """Gets the right_margin of this PageSetup. # noqa: E501 + + Returns or sets the distance (in points) between the right edge of the page and the right boundary of the body text. # noqa: E501 + + :return: The right_margin of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._right_margin + + @right_margin.setter + def right_margin(self, right_margin): + """Sets the right_margin of this PageSetup. + + Returns or sets the distance (in points) between the right edge of the page and the right boundary of the body text. # noqa: E501 + + :param right_margin: The right_margin of this PageSetup. # noqa: E501 + :type: float + """ + self._right_margin = right_margin + @property + def rtl_gutter(self): + """Gets the rtl_gutter of this PageSetup. # noqa: E501 + + Gets or sets whether Microsoft Word uses gutters for the section based on a right-to-left language or a left-to-right language. # noqa: E501 + + :return: The rtl_gutter of this PageSetup. # noqa: E501 + :rtype: bool + """ + return self._rtl_gutter + + @rtl_gutter.setter + def rtl_gutter(self, rtl_gutter): + """Sets the rtl_gutter of this PageSetup. + + Gets or sets whether Microsoft Word uses gutters for the section based on a right-to-left language or a left-to-right language. # noqa: E501 + + :param rtl_gutter: The rtl_gutter of this PageSetup. # noqa: E501 + :type: bool + """ + self._rtl_gutter = rtl_gutter + @property + def section_start(self): + """Gets the section_start of this PageSetup. # noqa: E501 + + Returns or sets the type of section break for the specified object. # noqa: E501 + + :return: The section_start of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._section_start + + @section_start.setter + def section_start(self, section_start): + """Sets the section_start of this PageSetup. + + Returns or sets the type of section break for the specified object. # noqa: E501 + + :param section_start: The section_start of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["Continuous", "NewColumn", "NewPage", "EvenPage", "OddPage"] # noqa: E501 + if not section_start.isdigit(): + if section_start not in allowed_values: + raise ValueError( + "Invalid value for `section_start` ({0}), must be one of {1}" # noqa: E501 + .format(section_start, allowed_values)) + self._section_start = section_start + else: + self._section_start = allowed_values[int(section_start) if six.PY3 else long(section_start)] + @property + def suppress_endnotes(self): + """Gets the suppress_endnotes of this PageSetup. # noqa: E501 + + True if endnotes are printed at the end of the next section that doesn't suppress endnotes. Suppressed endnotes are printed before the endnotes in that section. # noqa: E501 + + :return: The suppress_endnotes of this PageSetup. # noqa: E501 + :rtype: bool + """ + return self._suppress_endnotes + + @suppress_endnotes.setter + def suppress_endnotes(self, suppress_endnotes): + """Sets the suppress_endnotes of this PageSetup. + + True if endnotes are printed at the end of the next section that doesn't suppress endnotes. Suppressed endnotes are printed before the endnotes in that section. # noqa: E501 + + :param suppress_endnotes: The suppress_endnotes of this PageSetup. # noqa: E501 + :type: bool + """ + self._suppress_endnotes = suppress_endnotes + @property + def top_margin(self): + """Gets the top_margin of this PageSetup. # noqa: E501 + + Returns or sets the distance (in points) between the top edge of the page and the top boundary of the body text. # noqa: E501 + + :return: The top_margin of this PageSetup. # noqa: E501 + :rtype: float + """ + return self._top_margin + + @top_margin.setter + def top_margin(self, top_margin): + """Sets the top_margin of this PageSetup. + + Returns or sets the distance (in points) between the top edge of the page and the top boundary of the body text. # noqa: E501 + + :param top_margin: The top_margin of this PageSetup. # noqa: E501 + :type: float + """ + self._top_margin = top_margin + @property + def vertical_alignment(self): + """Gets the vertical_alignment of this PageSetup. # noqa: E501 + + Returns or sets the vertical alignment of text on each page in a document or section. # noqa: E501 + + :return: The vertical_alignment of this PageSetup. # noqa: E501 + :rtype: str + """ + return self._vertical_alignment + + @vertical_alignment.setter + def vertical_alignment(self, vertical_alignment): + """Sets the vertical_alignment of this PageSetup. + + Returns or sets the vertical alignment of text on each page in a document or section. # noqa: E501 + + :param vertical_alignment: The vertical_alignment of this PageSetup. # noqa: E501 + :type: str + """ + allowed_values = ["Top", "Center", "Justify", "Bottom"] # noqa: E501 + if not vertical_alignment.isdigit(): + if vertical_alignment not in allowed_values: + raise ValueError( + "Invalid value for `vertical_alignment` ({0}), must be one of {1}" # noqa: E501 + .format(vertical_alignment, allowed_values)) + self._vertical_alignment = vertical_alignment + else: + self._vertical_alignment = allowed_values[int(vertical_alignment) if six.PY3 else long(vertical_alignment)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PageSetup): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/page_stat_data.py b/asposewordscloud/models/page_stat_data.py new file mode 100644 index 00000000..5d2ba830 --- /dev/null +++ b/asposewordscloud/models/page_stat_data.py @@ -0,0 +1,206 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PageStatData(object): + """Container for the page's statistical data + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'page_number': 'int', + 'word_count': 'int', + 'paragraph_count': 'int', + 'footnotes_stat_data': 'FootnotesStatData' + } + + attribute_map = { + 'page_number': 'PageNumber', + 'word_count': 'WordCount', + 'paragraph_count': 'ParagraphCount', + 'footnotes_stat_data': 'FootnotesStatData' + } + + def __init__(self, page_number=None, word_count=None, paragraph_count=None, footnotes_stat_data=None): # noqa: E501 + """PageStatData - a model defined in Swagger""" # noqa: E501 + + self._page_number = None + self._word_count = None + self._paragraph_count = None + self._footnotes_stat_data = None + self.discriminator = None + + if page_number is not None: + self.page_number = page_number + if word_count is not None: + self.word_count = word_count + if paragraph_count is not None: + self.paragraph_count = paragraph_count + if footnotes_stat_data is not None: + self.footnotes_stat_data = footnotes_stat_data + + @property + def page_number(self): + """Gets the page_number of this PageStatData. # noqa: E501 + + Page number # noqa: E501 + + :return: The page_number of this PageStatData. # noqa: E501 + :rtype: int + """ + return self._page_number + + @page_number.setter + def page_number(self, page_number): + """Sets the page_number of this PageStatData. + + Page number # noqa: E501 + + :param page_number: The page_number of this PageStatData. # noqa: E501 + :type: int + """ + if page_number is None: + raise ValueError("Invalid value for `page_number`, must not be `None`") # noqa: E501 + self._page_number = page_number + @property + def word_count(self): + """Gets the word_count of this PageStatData. # noqa: E501 + + Total count of words in the page # noqa: E501 + + :return: The word_count of this PageStatData. # noqa: E501 + :rtype: int + """ + return self._word_count + + @word_count.setter + def word_count(self, word_count): + """Sets the word_count of this PageStatData. + + Total count of words in the page # noqa: E501 + + :param word_count: The word_count of this PageStatData. # noqa: E501 + :type: int + """ + if word_count is None: + raise ValueError("Invalid value for `word_count`, must not be `None`") # noqa: E501 + self._word_count = word_count + @property + def paragraph_count(self): + """Gets the paragraph_count of this PageStatData. # noqa: E501 + + Total count of paragraphs in the page # noqa: E501 + + :return: The paragraph_count of this PageStatData. # noqa: E501 + :rtype: int + """ + return self._paragraph_count + + @paragraph_count.setter + def paragraph_count(self, paragraph_count): + """Sets the paragraph_count of this PageStatData. + + Total count of paragraphs in the page # noqa: E501 + + :param paragraph_count: The paragraph_count of this PageStatData. # noqa: E501 + :type: int + """ + if paragraph_count is None: + raise ValueError("Invalid value for `paragraph_count`, must not be `None`") # noqa: E501 + self._paragraph_count = paragraph_count + @property + def footnotes_stat_data(self): + """Gets the footnotes_stat_data of this PageStatData. # noqa: E501 + + Detailed statistics of footnotes # noqa: E501 + + :return: The footnotes_stat_data of this PageStatData. # noqa: E501 + :rtype: FootnotesStatData + """ + return self._footnotes_stat_data + + @footnotes_stat_data.setter + def footnotes_stat_data(self, footnotes_stat_data): + """Sets the footnotes_stat_data of this PageStatData. + + Detailed statistics of footnotes # noqa: E501 + + :param footnotes_stat_data: The footnotes_stat_data of this PageStatData. # noqa: E501 + :type: FootnotesStatData + """ + self._footnotes_stat_data = footnotes_stat_data + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PageStatData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/paragraph.py b/asposewordscloud/models/paragraph.py new file mode 100644 index 00000000..9904c397 --- /dev/null +++ b/asposewordscloud/models/paragraph.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Paragraph(object): + """Paragraph element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'child_nodes': 'list[NodeLink]' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'child_nodes': 'ChildNodes' + } + + def __init__(self, link=None, node_id=None, child_nodes=None): # noqa: E501 + """Paragraph - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._child_nodes = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if child_nodes is not None: + self.child_nodes = child_nodes + + @property + def link(self): + """Gets the link of this Paragraph. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Paragraph. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Paragraph. + + Link to the document. # noqa: E501 + + :param link: The link of this Paragraph. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this Paragraph. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this Paragraph. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this Paragraph. + + Node id # noqa: E501 + + :param node_id: The node_id of this Paragraph. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def child_nodes(self): + """Gets the child_nodes of this Paragraph. # noqa: E501 + + Child nodes # noqa: E501 + + :return: The child_nodes of this Paragraph. # noqa: E501 + :rtype: list[NodeLink] + """ + return self._child_nodes + + @child_nodes.setter + def child_nodes(self, child_nodes): + """Sets the child_nodes of this Paragraph. + + Child nodes # noqa: E501 + + :param child_nodes: The child_nodes of this Paragraph. # noqa: E501 + :type: list[NodeLink] + """ + self._child_nodes = child_nodes + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Paragraph): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/paragraph_insert.py b/asposewordscloud/models/paragraph_insert.py new file mode 100644 index 00000000..465ef89a --- /dev/null +++ b/asposewordscloud/models/paragraph_insert.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ParagraphInsert(object): + """Paragraph element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'text': 'str' + } + + attribute_map = { + 'text': 'Text' + } + + def __init__(self, text=None): # noqa: E501 + """ParagraphInsert - a model defined in Swagger""" # noqa: E501 + + self._text = None + self.discriminator = None + + if text is not None: + self.text = text + + @property + def text(self): + """Gets the text of this ParagraphInsert. # noqa: E501 + + Paragraph's text # noqa: E501 + + :return: The text of this ParagraphInsert. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this ParagraphInsert. + + Paragraph's text # noqa: E501 + + :param text: The text of this ParagraphInsert. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ParagraphInsert): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/paragraph_link.py b/asposewordscloud/models/paragraph_link.py new file mode 100644 index 00000000..4f31c9b0 --- /dev/null +++ b/asposewordscloud/models/paragraph_link.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ParagraphLink(object): + """Paragraph link element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'text': 'Text' + } + + def __init__(self, link=None, node_id=None, text=None): # noqa: E501 + """ParagraphLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this ParagraphLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this ParagraphLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this ParagraphLink. + + Link to the document. # noqa: E501 + + :param link: The link of this ParagraphLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this ParagraphLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this ParagraphLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this ParagraphLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this ParagraphLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def text(self): + """Gets the text of this ParagraphLink. # noqa: E501 + + Paragraph's text # noqa: E501 + + :return: The text of this ParagraphLink. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this ParagraphLink. + + Paragraph's text # noqa: E501 + + :param text: The text of this ParagraphLink. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ParagraphLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/paragraph_link_collection.py b/asposewordscloud/models/paragraph_link_collection.py new file mode 100644 index 00000000..ba0ba47d --- /dev/null +++ b/asposewordscloud/models/paragraph_link_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ParagraphLinkCollection(object): + """Collection of links to paragraphs + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'paragraph_link_list': 'list[ParagraphLink]' + } + + attribute_map = { + 'link': 'link', + 'paragraph_link_list': 'ParagraphLinkList' + } + + def __init__(self, link=None, paragraph_link_list=None): # noqa: E501 + """ParagraphLinkCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._paragraph_link_list = None + self.discriminator = None + + if link is not None: + self.link = link + if paragraph_link_list is not None: + self.paragraph_link_list = paragraph_link_list + + @property + def link(self): + """Gets the link of this ParagraphLinkCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this ParagraphLinkCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this ParagraphLinkCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this ParagraphLinkCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def paragraph_link_list(self): + """Gets the paragraph_link_list of this ParagraphLinkCollection. # noqa: E501 + + Collection of paragraph's links # noqa: E501 + + :return: The paragraph_link_list of this ParagraphLinkCollection. # noqa: E501 + :rtype: list[ParagraphLink] + """ + return self._paragraph_link_list + + @paragraph_link_list.setter + def paragraph_link_list(self, paragraph_link_list): + """Sets the paragraph_link_list of this ParagraphLinkCollection. + + Collection of paragraph's links # noqa: E501 + + :param paragraph_link_list: The paragraph_link_list of this ParagraphLinkCollection. # noqa: E501 + :type: list[ParagraphLink] + """ + self._paragraph_link_list = paragraph_link_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ParagraphLinkCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/paragraph_link_collection_response.py b/asposewordscloud/models/paragraph_link_collection_response.py new file mode 100644 index 00000000..f18fa21c --- /dev/null +++ b/asposewordscloud/models/paragraph_link_collection_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ParagraphLinkCollectionResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/paragraphs + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'paragraphs': 'ParagraphLinkCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'paragraphs': 'Paragraphs' + } + + def __init__(self, code=None, status=None, paragraphs=None): # noqa: E501 + """ParagraphLinkCollectionResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._paragraphs = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if paragraphs is not None: + self.paragraphs = paragraphs + + @property + def code(self): + """Gets the code of this ParagraphLinkCollectionResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this ParagraphLinkCollectionResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this ParagraphLinkCollectionResponse. + + Response status code. # noqa: E501 + + :param code: The code of this ParagraphLinkCollectionResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this ParagraphLinkCollectionResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this ParagraphLinkCollectionResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this ParagraphLinkCollectionResponse. + + Response status. # noqa: E501 + + :param status: The status of this ParagraphLinkCollectionResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def paragraphs(self): + """Gets the paragraphs of this ParagraphLinkCollectionResponse. # noqa: E501 + + Collection of paragraphs # noqa: E501 + + :return: The paragraphs of this ParagraphLinkCollectionResponse. # noqa: E501 + :rtype: ParagraphLinkCollection + """ + return self._paragraphs + + @paragraphs.setter + def paragraphs(self, paragraphs): + """Sets the paragraphs of this ParagraphLinkCollectionResponse. + + Collection of paragraphs # noqa: E501 + + :param paragraphs: The paragraphs of this ParagraphLinkCollectionResponse. # noqa: E501 + :type: ParagraphLinkCollection + """ + self._paragraphs = paragraphs + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ParagraphLinkCollectionResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/paragraph_response.py b/asposewordscloud/models/paragraph_response.py new file mode 100644 index 00000000..167b57cb --- /dev/null +++ b/asposewordscloud/models/paragraph_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ParagraphResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/paragraphs/{0} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'paragraph': 'Paragraph' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'paragraph': 'Paragraph' + } + + def __init__(self, code=None, status=None, paragraph=None): # noqa: E501 + """ParagraphResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._paragraph = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if paragraph is not None: + self.paragraph = paragraph + + @property + def code(self): + """Gets the code of this ParagraphResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this ParagraphResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this ParagraphResponse. + + Response status code. # noqa: E501 + + :param code: The code of this ParagraphResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this ParagraphResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this ParagraphResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this ParagraphResponse. + + Response status. # noqa: E501 + + :param status: The status of this ParagraphResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def paragraph(self): + """Gets the paragraph of this ParagraphResponse. # noqa: E501 + + Paragraph # noqa: E501 + + :return: The paragraph of this ParagraphResponse. # noqa: E501 + :rtype: Paragraph + """ + return self._paragraph + + @paragraph.setter + def paragraph(self, paragraph): + """Sets the paragraph of this ParagraphResponse. + + Paragraph # noqa: E501 + + :param paragraph: The paragraph of this ParagraphResponse. # noqa: E501 + :type: Paragraph + """ + self._paragraph = paragraph + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ParagraphResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/pcl_save_options_data.py b/asposewordscloud/models/pcl_save_options_data.py new file mode 100644 index 00000000..c0f6c91a --- /dev/null +++ b/asposewordscloud/models/pcl_save_options_data.py @@ -0,0 +1,538 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PclSaveOptionsData(object): + """Container class for pcl save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'falllback_font_name': 'str', + 'rasterize_transformed_elements': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'falllback_font_name': 'FalllbackFontName', + 'rasterize_transformed_elements': 'RasterizeTransformedElements' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, falllback_font_name=None, rasterize_transformed_elements=None): # noqa: E501 + """PclSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._falllback_font_name = None + self._rasterize_transformed_elements = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if falllback_font_name is not None: + self.falllback_font_name = falllback_font_name + if rasterize_transformed_elements is not None: + self.rasterize_transformed_elements = rasterize_transformed_elements + + @property + def color_mode(self): + """Gets the color_mode of this PclSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this PclSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this PclSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this PclSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this PclSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this PclSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this PclSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this PclSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this PclSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this PclSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this PclSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this PclSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this PclSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this PclSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this PclSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this PclSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this PclSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this PclSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this PclSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this PclSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this PclSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this PclSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this PclSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this PclSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this PclSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this PclSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this PclSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this PclSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this PclSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this PclSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this PclSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this PclSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this PclSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this PclSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this PclSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this PclSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this PclSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this PclSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this PclSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this PclSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this PclSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this PclSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this PclSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this PclSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this PclSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this PclSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this PclSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this PclSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def falllback_font_name(self): + """Gets the falllback_font_name of this PclSaveOptionsData. # noqa: E501 + + Name of the font that will be used if no expected font is found in printer and built-in fonts collections. # noqa: E501 + + :return: The falllback_font_name of this PclSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._falllback_font_name + + @falllback_font_name.setter + def falllback_font_name(self, falllback_font_name): + """Sets the falllback_font_name of this PclSaveOptionsData. + + Name of the font that will be used if no expected font is found in printer and built-in fonts collections. # noqa: E501 + + :param falllback_font_name: The falllback_font_name of this PclSaveOptionsData. # noqa: E501 + :type: str + """ + self._falllback_font_name = falllback_font_name + @property + def rasterize_transformed_elements(self): + """Gets the rasterize_transformed_elements of this PclSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether or not complex transformed elements should be rasterized before saving to PCL document. Default is true. # noqa: E501 + + :return: The rasterize_transformed_elements of this PclSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._rasterize_transformed_elements + + @rasterize_transformed_elements.setter + def rasterize_transformed_elements(self, rasterize_transformed_elements): + """Sets the rasterize_transformed_elements of this PclSaveOptionsData. + + Gets or sets a value determining whether or not complex transformed elements should be rasterized before saving to PCL document. Default is true. # noqa: E501 + + :param rasterize_transformed_elements: The rasterize_transformed_elements of this PclSaveOptionsData. # noqa: E501 + :type: bool + """ + self._rasterize_transformed_elements = rasterize_transformed_elements + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PclSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/pdf_digital_signature_details_data.py b/asposewordscloud/models/pdf_digital_signature_details_data.py new file mode 100644 index 00000000..de342516 --- /dev/null +++ b/asposewordscloud/models/pdf_digital_signature_details_data.py @@ -0,0 +1,226 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PdfDigitalSignatureDetailsData(object): + """container class for details of digital signature + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'certificate_filename': 'str', + 'hash_algorithm': 'str', + 'location': 'str', + 'reason': 'str', + 'signature_date': 'datetime' + } + + attribute_map = { + 'certificate_filename': 'CertificateFilename', + 'hash_algorithm': 'HashAlgorithm', + 'location': 'Location', + 'reason': 'Reason', + 'signature_date': 'SignatureDate' + } + + def __init__(self, certificate_filename=None, hash_algorithm=None, location=None, reason=None, signature_date=None): # noqa: E501 + """PdfDigitalSignatureDetailsData - a model defined in Swagger""" # noqa: E501 + + self._certificate_filename = None + self._hash_algorithm = None + self._location = None + self._reason = None + self._signature_date = None + self.discriminator = None + + if certificate_filename is not None: + self.certificate_filename = certificate_filename + if hash_algorithm is not None: + self.hash_algorithm = hash_algorithm + if location is not None: + self.location = location + if reason is not None: + self.reason = reason + if signature_date is not None: + self.signature_date = signature_date + + @property + def certificate_filename(self): + """Gets the certificate_filename of this PdfDigitalSignatureDetailsData. # noqa: E501 + + certificate's filename using for signing # noqa: E501 + + :return: The certificate_filename of this PdfDigitalSignatureDetailsData. # noqa: E501 + :rtype: str + """ + return self._certificate_filename + + @certificate_filename.setter + def certificate_filename(self, certificate_filename): + """Sets the certificate_filename of this PdfDigitalSignatureDetailsData. + + certificate's filename using for signing # noqa: E501 + + :param certificate_filename: The certificate_filename of this PdfDigitalSignatureDetailsData. # noqa: E501 + :type: str + """ + self._certificate_filename = certificate_filename + @property + def hash_algorithm(self): + """Gets the hash_algorithm of this PdfDigitalSignatureDetailsData. # noqa: E501 + + hash algorithm # noqa: E501 + + :return: The hash_algorithm of this PdfDigitalSignatureDetailsData. # noqa: E501 + :rtype: str + """ + return self._hash_algorithm + + @hash_algorithm.setter + def hash_algorithm(self, hash_algorithm): + """Sets the hash_algorithm of this PdfDigitalSignatureDetailsData. + + hash algorithm # noqa: E501 + + :param hash_algorithm: The hash_algorithm of this PdfDigitalSignatureDetailsData. # noqa: E501 + :type: str + """ + self._hash_algorithm = hash_algorithm + @property + def location(self): + """Gets the location of this PdfDigitalSignatureDetailsData. # noqa: E501 + + location of the signing # noqa: E501 + + :return: The location of this PdfDigitalSignatureDetailsData. # noqa: E501 + :rtype: str + """ + return self._location + + @location.setter + def location(self, location): + """Sets the location of this PdfDigitalSignatureDetailsData. + + location of the signing # noqa: E501 + + :param location: The location of this PdfDigitalSignatureDetailsData. # noqa: E501 + :type: str + """ + self._location = location + @property + def reason(self): + """Gets the reason of this PdfDigitalSignatureDetailsData. # noqa: E501 + + reason for the signing # noqa: E501 + + :return: The reason of this PdfDigitalSignatureDetailsData. # noqa: E501 + :rtype: str + """ + return self._reason + + @reason.setter + def reason(self, reason): + """Sets the reason of this PdfDigitalSignatureDetailsData. + + reason for the signing # noqa: E501 + + :param reason: The reason of this PdfDigitalSignatureDetailsData. # noqa: E501 + :type: str + """ + self._reason = reason + @property + def signature_date(self): + """Gets the signature_date of this PdfDigitalSignatureDetailsData. # noqa: E501 + + date of the signing # noqa: E501 + + :return: The signature_date of this PdfDigitalSignatureDetailsData. # noqa: E501 + :rtype: datetime + """ + return self._signature_date + + @signature_date.setter + def signature_date(self, signature_date): + """Sets the signature_date of this PdfDigitalSignatureDetailsData. + + date of the signing # noqa: E501 + + :param signature_date: The signature_date of this PdfDigitalSignatureDetailsData. # noqa: E501 + :type: datetime + """ + self._signature_date = signature_date + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PdfDigitalSignatureDetailsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/pdf_encryption_details_data.py b/asposewordscloud/models/pdf_encryption_details_data.py new file mode 100644 index 00000000..4224df79 --- /dev/null +++ b/asposewordscloud/models/pdf_encryption_details_data.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PdfEncryptionDetailsData(object): + """container class for details of encryption + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'encryption_algorithm': 'str', + 'owner_password': 'str', + 'permissions': 'str', + 'user_password': 'str' + } + + attribute_map = { + 'encryption_algorithm': 'EncryptionAlgorithm', + 'owner_password': 'OwnerPassword', + 'permissions': 'Permissions', + 'user_password': 'UserPassword' + } + + def __init__(self, encryption_algorithm=None, owner_password=None, permissions=None, user_password=None): # noqa: E501 + """PdfEncryptionDetailsData - a model defined in Swagger""" # noqa: E501 + + self._encryption_algorithm = None + self._owner_password = None + self._permissions = None + self._user_password = None + self.discriminator = None + + if encryption_algorithm is not None: + self.encryption_algorithm = encryption_algorithm + if owner_password is not None: + self.owner_password = owner_password + if permissions is not None: + self.permissions = permissions + if user_password is not None: + self.user_password = user_password + + @property + def encryption_algorithm(self): + """Gets the encryption_algorithm of this PdfEncryptionDetailsData. # noqa: E501 + + Specifies the encryption algorithm to use # noqa: E501 + + :return: The encryption_algorithm of this PdfEncryptionDetailsData. # noqa: E501 + :rtype: str + """ + return self._encryption_algorithm + + @encryption_algorithm.setter + def encryption_algorithm(self, encryption_algorithm): + """Sets the encryption_algorithm of this PdfEncryptionDetailsData. + + Specifies the encryption algorithm to use # noqa: E501 + + :param encryption_algorithm: The encryption_algorithm of this PdfEncryptionDetailsData. # noqa: E501 + :type: str + """ + self._encryption_algorithm = encryption_algorithm + @property + def owner_password(self): + """Gets the owner_password of this PdfEncryptionDetailsData. # noqa: E501 + + Specifies the owner password for the encrypted PDF document # noqa: E501 + + :return: The owner_password of this PdfEncryptionDetailsData. # noqa: E501 + :rtype: str + """ + return self._owner_password + + @owner_password.setter + def owner_password(self, owner_password): + """Sets the owner_password of this PdfEncryptionDetailsData. + + Specifies the owner password for the encrypted PDF document # noqa: E501 + + :param owner_password: The owner_password of this PdfEncryptionDetailsData. # noqa: E501 + :type: str + """ + self._owner_password = owner_password + @property + def permissions(self): + """Gets the permissions of this PdfEncryptionDetailsData. # noqa: E501 + + Specifies the operations that are allowed to a user on an encrypted PDF document # noqa: E501 + + :return: The permissions of this PdfEncryptionDetailsData. # noqa: E501 + :rtype: str + """ + return self._permissions + + @permissions.setter + def permissions(self, permissions): + """Sets the permissions of this PdfEncryptionDetailsData. + + Specifies the operations that are allowed to a user on an encrypted PDF document # noqa: E501 + + :param permissions: The permissions of this PdfEncryptionDetailsData. # noqa: E501 + :type: str + """ + self._permissions = permissions + @property + def user_password(self): + """Gets the user_password of this PdfEncryptionDetailsData. # noqa: E501 + + Specifies the user password required for opening the encrypted PDF document # noqa: E501 + + :return: The user_password of this PdfEncryptionDetailsData. # noqa: E501 + :rtype: str + """ + return self._user_password + + @user_password.setter + def user_password(self, user_password): + """Sets the user_password of this PdfEncryptionDetailsData. + + Specifies the user password required for opening the encrypted PDF document # noqa: E501 + + :param user_password: The user_password of this PdfEncryptionDetailsData. # noqa: E501 + :type: str + """ + self._user_password = user_password + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PdfEncryptionDetailsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/pdf_save_options_data.py b/asposewordscloud/models/pdf_save_options_data.py new file mode 100644 index 00000000..531fe59b --- /dev/null +++ b/asposewordscloud/models/pdf_save_options_data.py @@ -0,0 +1,1084 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PdfSaveOptionsData(object): + """container class for pdf save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'compliance': 'str', + 'create_note_hyperlinks': 'bool', + 'custom_properties_export': 'str', + 'digital_signature_details': 'PdfDigitalSignatureDetailsData', + 'display_doc_title': 'bool', + 'downsample_options': 'DownsampleOptionsData', + 'embed_full_fonts': 'bool', + 'encryption_details': 'PdfEncryptionDetailsData', + 'escape_uri': 'bool', + 'export_document_structure': 'bool', + 'font_embedding_mode': 'str', + 'image_color_space_export_mode': 'str', + 'image_compression': 'str', + 'open_hyperlinks_in_new_window': 'bool', + 'outline_options': 'OutlineOptionsData', + 'page_mode': 'str', + 'preblend_images': 'bool', + 'preserve_form_fields': 'bool', + 'text_compression': 'str', + 'use_book_fold_printing_settings': 'bool', + 'use_core_fonts': 'bool', + 'zoom_behavior': 'str', + 'zoom_factor': 'int' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'compliance': 'Compliance', + 'create_note_hyperlinks': 'CreateNoteHyperlinks', + 'custom_properties_export': 'CustomPropertiesExport', + 'digital_signature_details': 'DigitalSignatureDetails', + 'display_doc_title': 'DisplayDocTitle', + 'downsample_options': 'DownsampleOptions', + 'embed_full_fonts': 'EmbedFullFonts', + 'encryption_details': 'EncryptionDetails', + 'escape_uri': 'EscapeUri', + 'export_document_structure': 'ExportDocumentStructure', + 'font_embedding_mode': 'FontEmbeddingMode', + 'image_color_space_export_mode': 'ImageColorSpaceExportMode', + 'image_compression': 'ImageCompression', + 'open_hyperlinks_in_new_window': 'OpenHyperlinksInNewWindow', + 'outline_options': 'OutlineOptions', + 'page_mode': 'PageMode', + 'preblend_images': 'PreblendImages', + 'preserve_form_fields': 'PreserveFormFields', + 'text_compression': 'TextCompression', + 'use_book_fold_printing_settings': 'UseBookFoldPrintingSettings', + 'use_core_fonts': 'UseCoreFonts', + 'zoom_behavior': 'ZoomBehavior', + 'zoom_factor': 'ZoomFactor' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, compliance=None, create_note_hyperlinks=None, custom_properties_export=None, digital_signature_details=None, display_doc_title=None, downsample_options=None, embed_full_fonts=None, encryption_details=None, escape_uri=None, export_document_structure=None, font_embedding_mode=None, image_color_space_export_mode=None, image_compression=None, open_hyperlinks_in_new_window=None, outline_options=None, page_mode=None, preblend_images=None, preserve_form_fields=None, text_compression=None, use_book_fold_printing_settings=None, use_core_fonts=None, zoom_behavior=None, zoom_factor=None): # noqa: E501 + """PdfSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._compliance = None + self._create_note_hyperlinks = None + self._custom_properties_export = None + self._digital_signature_details = None + self._display_doc_title = None + self._downsample_options = None + self._embed_full_fonts = None + self._encryption_details = None + self._escape_uri = None + self._export_document_structure = None + self._font_embedding_mode = None + self._image_color_space_export_mode = None + self._image_compression = None + self._open_hyperlinks_in_new_window = None + self._outline_options = None + self._page_mode = None + self._preblend_images = None + self._preserve_form_fields = None + self._text_compression = None + self._use_book_fold_printing_settings = None + self._use_core_fonts = None + self._zoom_behavior = None + self._zoom_factor = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if compliance is not None: + self.compliance = compliance + if create_note_hyperlinks is not None: + self.create_note_hyperlinks = create_note_hyperlinks + if custom_properties_export is not None: + self.custom_properties_export = custom_properties_export + if digital_signature_details is not None: + self.digital_signature_details = digital_signature_details + if display_doc_title is not None: + self.display_doc_title = display_doc_title + if downsample_options is not None: + self.downsample_options = downsample_options + if embed_full_fonts is not None: + self.embed_full_fonts = embed_full_fonts + if encryption_details is not None: + self.encryption_details = encryption_details + if escape_uri is not None: + self.escape_uri = escape_uri + if export_document_structure is not None: + self.export_document_structure = export_document_structure + if font_embedding_mode is not None: + self.font_embedding_mode = font_embedding_mode + if image_color_space_export_mode is not None: + self.image_color_space_export_mode = image_color_space_export_mode + if image_compression is not None: + self.image_compression = image_compression + if open_hyperlinks_in_new_window is not None: + self.open_hyperlinks_in_new_window = open_hyperlinks_in_new_window + if outline_options is not None: + self.outline_options = outline_options + if page_mode is not None: + self.page_mode = page_mode + if preblend_images is not None: + self.preblend_images = preblend_images + if preserve_form_fields is not None: + self.preserve_form_fields = preserve_form_fields + if text_compression is not None: + self.text_compression = text_compression + if use_book_fold_printing_settings is not None: + self.use_book_fold_printing_settings = use_book_fold_printing_settings + if use_core_fonts is not None: + self.use_core_fonts = use_core_fonts + if zoom_behavior is not None: + self.zoom_behavior = zoom_behavior + if zoom_factor is not None: + self.zoom_factor = zoom_factor + + @property + def color_mode(self): + """Gets the color_mode of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this PdfSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this PdfSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this PdfSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this PdfSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this PdfSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this PdfSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this PdfSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this PdfSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this PdfSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this PdfSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this PdfSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this PdfSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this PdfSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this PdfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this PdfSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this PdfSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this PdfSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this PdfSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this PdfSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this PdfSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this PdfSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this PdfSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this PdfSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this PdfSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this PdfSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this PdfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this PdfSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this PdfSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this PdfSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this PdfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this PdfSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this PdfSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def compliance(self): + """Gets the compliance of this PdfSaveOptionsData. # noqa: E501 + + Specifies the PDF standards compliance level for output documents # noqa: E501 + + :return: The compliance of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._compliance + + @compliance.setter + def compliance(self, compliance): + """Sets the compliance of this PdfSaveOptionsData. + + Specifies the PDF standards compliance level for output documents # noqa: E501 + + :param compliance: The compliance of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._compliance = compliance + @property + def create_note_hyperlinks(self): + """Gets the create_note_hyperlinks of this PdfSaveOptionsData. # noqa: E501 + + Specifies whether to convert footnote/endnote references in main text story into active hyperlinks. When clicked the hyperlink will lead to the corresponding footnote/endnote. Default is false. # noqa: E501 + + :return: The create_note_hyperlinks of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._create_note_hyperlinks + + @create_note_hyperlinks.setter + def create_note_hyperlinks(self, create_note_hyperlinks): + """Sets the create_note_hyperlinks of this PdfSaveOptionsData. + + Specifies whether to convert footnote/endnote references in main text story into active hyperlinks. When clicked the hyperlink will lead to the corresponding footnote/endnote. Default is false. # noqa: E501 + + :param create_note_hyperlinks: The create_note_hyperlinks of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._create_note_hyperlinks = create_note_hyperlinks + @property + def custom_properties_export(self): + """Gets the custom_properties_export of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining the way are exported to PDF file. Default value is . # noqa: E501 + + :return: The custom_properties_export of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._custom_properties_export + + @custom_properties_export.setter + def custom_properties_export(self, custom_properties_export): + """Sets the custom_properties_export of this PdfSaveOptionsData. + + Gets or sets a value determining the way are exported to PDF file. Default value is . # noqa: E501 + + :param custom_properties_export: The custom_properties_export of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._custom_properties_export = custom_properties_export + @property + def digital_signature_details(self): + """Gets the digital_signature_details of this PdfSaveOptionsData. # noqa: E501 + + Specifies the details for signing the output PDF document # noqa: E501 + + :return: The digital_signature_details of this PdfSaveOptionsData. # noqa: E501 + :rtype: PdfDigitalSignatureDetailsData + """ + return self._digital_signature_details + + @digital_signature_details.setter + def digital_signature_details(self, digital_signature_details): + """Sets the digital_signature_details of this PdfSaveOptionsData. + + Specifies the details for signing the output PDF document # noqa: E501 + + :param digital_signature_details: The digital_signature_details of this PdfSaveOptionsData. # noqa: E501 + :type: PdfDigitalSignatureDetailsData + """ + self._digital_signature_details = digital_signature_details + @property + def display_doc_title(self): + """Gets the display_doc_title of this PdfSaveOptionsData. # noqa: E501 + + A flag specifying whether the window’s title bar should display the document title taken from the Title entry of the document information dictionary. # noqa: E501 + + :return: The display_doc_title of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._display_doc_title + + @display_doc_title.setter + def display_doc_title(self, display_doc_title): + """Sets the display_doc_title of this PdfSaveOptionsData. + + A flag specifying whether the window’s title bar should display the document title taken from the Title entry of the document information dictionary. # noqa: E501 + + :param display_doc_title: The display_doc_title of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._display_doc_title = display_doc_title + @property + def downsample_options(self): + """Gets the downsample_options of this PdfSaveOptionsData. # noqa: E501 + + Allows to specify downsample options. # noqa: E501 + + :return: The downsample_options of this PdfSaveOptionsData. # noqa: E501 + :rtype: DownsampleOptionsData + """ + return self._downsample_options + + @downsample_options.setter + def downsample_options(self, downsample_options): + """Sets the downsample_options of this PdfSaveOptionsData. + + Allows to specify downsample options. # noqa: E501 + + :param downsample_options: The downsample_options of this PdfSaveOptionsData. # noqa: E501 + :type: DownsampleOptionsData + """ + self._downsample_options = downsample_options + @property + def embed_full_fonts(self): + """Gets the embed_full_fonts of this PdfSaveOptionsData. # noqa: E501 + + Controls how fonts are embedded into the resulting PDF documents # noqa: E501 + + :return: The embed_full_fonts of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._embed_full_fonts + + @embed_full_fonts.setter + def embed_full_fonts(self, embed_full_fonts): + """Sets the embed_full_fonts of this PdfSaveOptionsData. + + Controls how fonts are embedded into the resulting PDF documents # noqa: E501 + + :param embed_full_fonts: The embed_full_fonts of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._embed_full_fonts = embed_full_fonts + @property + def encryption_details(self): + """Gets the encryption_details of this PdfSaveOptionsData. # noqa: E501 + + Specifies the details for encrypting the output PDF document # noqa: E501 + + :return: The encryption_details of this PdfSaveOptionsData. # noqa: E501 + :rtype: PdfEncryptionDetailsData + """ + return self._encryption_details + + @encryption_details.setter + def encryption_details(self, encryption_details): + """Sets the encryption_details of this PdfSaveOptionsData. + + Specifies the details for encrypting the output PDF document # noqa: E501 + + :param encryption_details: The encryption_details of this PdfSaveOptionsData. # noqa: E501 + :type: PdfEncryptionDetailsData + """ + self._encryption_details = encryption_details + @property + def escape_uri(self): + """Gets the escape_uri of this PdfSaveOptionsData. # noqa: E501 + + A flag specifying whether URI should be escaped before writing. # noqa: E501 + + :return: The escape_uri of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._escape_uri + + @escape_uri.setter + def escape_uri(self, escape_uri): + """Sets the escape_uri of this PdfSaveOptionsData. + + A flag specifying whether URI should be escaped before writing. # noqa: E501 + + :param escape_uri: The escape_uri of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._escape_uri = escape_uri + @property + def export_document_structure(self): + """Gets the export_document_structure of this PdfSaveOptionsData. # noqa: E501 + + Determines whether or not to export document structure # noqa: E501 + + :return: The export_document_structure of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_document_structure + + @export_document_structure.setter + def export_document_structure(self, export_document_structure): + """Sets the export_document_structure of this PdfSaveOptionsData. + + Determines whether or not to export document structure # noqa: E501 + + :param export_document_structure: The export_document_structure of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_document_structure = export_document_structure + @property + def font_embedding_mode(self): + """Gets the font_embedding_mode of this PdfSaveOptionsData. # noqa: E501 + + Specifies the font embedding mode # noqa: E501 + + :return: The font_embedding_mode of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._font_embedding_mode + + @font_embedding_mode.setter + def font_embedding_mode(self, font_embedding_mode): + """Sets the font_embedding_mode of this PdfSaveOptionsData. + + Specifies the font embedding mode # noqa: E501 + + :param font_embedding_mode: The font_embedding_mode of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._font_embedding_mode = font_embedding_mode + @property + def image_color_space_export_mode(self): + """Gets the image_color_space_export_mode of this PdfSaveOptionsData. # noqa: E501 + + Specifies how the color space will be selected for the images in PDF document. # noqa: E501 + + :return: The image_color_space_export_mode of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_space_export_mode + + @image_color_space_export_mode.setter + def image_color_space_export_mode(self, image_color_space_export_mode): + """Sets the image_color_space_export_mode of this PdfSaveOptionsData. + + Specifies how the color space will be selected for the images in PDF document. # noqa: E501 + + :param image_color_space_export_mode: The image_color_space_export_mode of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_space_export_mode = image_color_space_export_mode + @property + def image_compression(self): + """Gets the image_compression of this PdfSaveOptionsData. # noqa: E501 + + Specifies compression type to be used for all images in the document # noqa: E501 + + :return: The image_compression of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_compression + + @image_compression.setter + def image_compression(self, image_compression): + """Sets the image_compression of this PdfSaveOptionsData. + + Specifies compression type to be used for all images in the document # noqa: E501 + + :param image_compression: The image_compression of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_compression = image_compression + @property + def open_hyperlinks_in_new_window(self): + """Gets the open_hyperlinks_in_new_window of this PdfSaveOptionsData. # noqa: E501 + + Determines whether hyperlinks in the output Pdf document are forced to be opened in a new window (or tab) of a browser # noqa: E501 + + :return: The open_hyperlinks_in_new_window of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._open_hyperlinks_in_new_window + + @open_hyperlinks_in_new_window.setter + def open_hyperlinks_in_new_window(self, open_hyperlinks_in_new_window): + """Sets the open_hyperlinks_in_new_window of this PdfSaveOptionsData. + + Determines whether hyperlinks in the output Pdf document are forced to be opened in a new window (or tab) of a browser # noqa: E501 + + :param open_hyperlinks_in_new_window: The open_hyperlinks_in_new_window of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._open_hyperlinks_in_new_window = open_hyperlinks_in_new_window + @property + def outline_options(self): + """Gets the outline_options of this PdfSaveOptionsData. # noqa: E501 + + Allows to specify outline options # noqa: E501 + + :return: The outline_options of this PdfSaveOptionsData. # noqa: E501 + :rtype: OutlineOptionsData + """ + return self._outline_options + + @outline_options.setter + def outline_options(self, outline_options): + """Sets the outline_options of this PdfSaveOptionsData. + + Allows to specify outline options # noqa: E501 + + :param outline_options: The outline_options of this PdfSaveOptionsData. # noqa: E501 + :type: OutlineOptionsData + """ + self._outline_options = outline_options + @property + def page_mode(self): + """Gets the page_mode of this PdfSaveOptionsData. # noqa: E501 + + Specifies how the PDF document should be displayed when opened in the PDF reader # noqa: E501 + + :return: The page_mode of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._page_mode + + @page_mode.setter + def page_mode(self, page_mode): + """Sets the page_mode of this PdfSaveOptionsData. + + Specifies how the PDF document should be displayed when opened in the PDF reader # noqa: E501 + + :param page_mode: The page_mode of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._page_mode = page_mode + @property + def preblend_images(self): + """Gets the preblend_images of this PdfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether or not to preblend transparent images with black background color. # noqa: E501 + + :return: The preblend_images of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._preblend_images + + @preblend_images.setter + def preblend_images(self, preblend_images): + """Sets the preblend_images of this PdfSaveOptionsData. + + Gets or sets a value determining whether or not to preblend transparent images with black background color. # noqa: E501 + + :param preblend_images: The preblend_images of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._preblend_images = preblend_images + @property + def preserve_form_fields(self): + """Gets the preserve_form_fields of this PdfSaveOptionsData. # noqa: E501 + + Specifies whether to preserve Microsoft Word form fields as form fields in PDF or convert them to text # noqa: E501 + + :return: The preserve_form_fields of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._preserve_form_fields + + @preserve_form_fields.setter + def preserve_form_fields(self, preserve_form_fields): + """Sets the preserve_form_fields of this PdfSaveOptionsData. + + Specifies whether to preserve Microsoft Word form fields as form fields in PDF or convert them to text # noqa: E501 + + :param preserve_form_fields: The preserve_form_fields of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._preserve_form_fields = preserve_form_fields + @property + def text_compression(self): + """Gets the text_compression of this PdfSaveOptionsData. # noqa: E501 + + Specifies compression type to be used for all textual content in the document # noqa: E501 + + :return: The text_compression of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._text_compression + + @text_compression.setter + def text_compression(self, text_compression): + """Sets the text_compression of this PdfSaveOptionsData. + + Specifies compression type to be used for all textual content in the document # noqa: E501 + + :param text_compression: The text_compression of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._text_compression = text_compression + @property + def use_book_fold_printing_settings(self): + """Gets the use_book_fold_printing_settings of this PdfSaveOptionsData. # noqa: E501 + + Determines whether the document should be saved using a booklet printing layout # noqa: E501 + + :return: The use_book_fold_printing_settings of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_book_fold_printing_settings + + @use_book_fold_printing_settings.setter + def use_book_fold_printing_settings(self, use_book_fold_printing_settings): + """Sets the use_book_fold_printing_settings of this PdfSaveOptionsData. + + Determines whether the document should be saved using a booklet printing layout # noqa: E501 + + :param use_book_fold_printing_settings: The use_book_fold_printing_settings of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_book_fold_printing_settings = use_book_fold_printing_settings + @property + def use_core_fonts(self): + """Gets the use_core_fonts of this PdfSaveOptionsData. # noqa: E501 + + Determines whether or not to substitute TrueType fonts Arial, Times New Roman, Courier New and Symbol with core PDF Type 1 fonts # noqa: E501 + + :return: The use_core_fonts of this PdfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_core_fonts + + @use_core_fonts.setter + def use_core_fonts(self, use_core_fonts): + """Sets the use_core_fonts of this PdfSaveOptionsData. + + Determines whether or not to substitute TrueType fonts Arial, Times New Roman, Courier New and Symbol with core PDF Type 1 fonts # noqa: E501 + + :param use_core_fonts: The use_core_fonts of this PdfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_core_fonts = use_core_fonts + @property + def zoom_behavior(self): + """Gets the zoom_behavior of this PdfSaveOptionsData. # noqa: E501 + + Determines what type of zoom should be applied when a document is opened with a PDF viewer # noqa: E501 + + :return: The zoom_behavior of this PdfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._zoom_behavior + + @zoom_behavior.setter + def zoom_behavior(self, zoom_behavior): + """Sets the zoom_behavior of this PdfSaveOptionsData. + + Determines what type of zoom should be applied when a document is opened with a PDF viewer # noqa: E501 + + :param zoom_behavior: The zoom_behavior of this PdfSaveOptionsData. # noqa: E501 + :type: str + """ + self._zoom_behavior = zoom_behavior + @property + def zoom_factor(self): + """Gets the zoom_factor of this PdfSaveOptionsData. # noqa: E501 + + Determines zoom factor (in percentages) for a document # noqa: E501 + + :return: The zoom_factor of this PdfSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._zoom_factor + + @zoom_factor.setter + def zoom_factor(self, zoom_factor): + """Sets the zoom_factor of this PdfSaveOptionsData. + + Determines zoom factor (in percentages) for a document # noqa: E501 + + :param zoom_factor: The zoom_factor of this PdfSaveOptionsData. # noqa: E501 + :type: int + """ + self._zoom_factor = zoom_factor + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PdfSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/png_save_options_data.py b/asposewordscloud/models/png_save_options_data.py new file mode 100644 index 00000000..ae23c5c9 --- /dev/null +++ b/asposewordscloud/models/png_save_options_data.py @@ -0,0 +1,824 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PngSaveOptionsData(object): + """container class for png save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None): # noqa: E501 + """PngSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + + @property + def color_mode(self): + """Gets the color_mode of this PngSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this PngSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this PngSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this PngSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this PngSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this PngSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this PngSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this PngSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this PngSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this PngSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this PngSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this PngSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this PngSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this PngSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this PngSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this PngSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this PngSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this PngSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this PngSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this PngSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this PngSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this PngSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this PngSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this PngSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this PngSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this PngSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this PngSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this PngSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this PngSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this PngSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this PngSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this PngSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this PngSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this PngSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this PngSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this PngSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this PngSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this PngSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this PngSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this PngSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this PngSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this PngSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this PngSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this PngSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this PngSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this PngSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this PngSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this PngSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this PngSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this PngSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this PngSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this PngSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this PngSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this PngSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this PngSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this PngSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this PngSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this PngSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this PngSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this PngSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this PngSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this PngSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this PngSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this PngSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this PngSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this PngSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this PngSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this PngSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this PngSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this PngSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this PngSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this PngSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this PngSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this PngSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this PngSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this PngSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this PngSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this PngSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this PngSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this PngSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this PngSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this PngSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PngSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/preferred_width.py b/asposewordscloud/models/preferred_width.py new file mode 100644 index 00000000..9de32b08 --- /dev/null +++ b/asposewordscloud/models/preferred_width.py @@ -0,0 +1,158 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PreferredWidth(object): + """Preferred width. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'type': 'str', + 'value': 'float' + } + + attribute_map = { + 'type': 'Type', + 'value': 'Value' + } + + def __init__(self, type=None, value=None): # noqa: E501 + """PreferredWidth - a model defined in Swagger""" # noqa: E501 + + self._type = None + self._value = None + self.discriminator = None + + if type is not None: + self.type = type + if value is not None: + self.value = value + + @property + def type(self): + """Gets the type of this PreferredWidth. # noqa: E501 + + Gets the unit of measure used for this preferred width value. # noqa: E501 + + :return: The type of this PreferredWidth. # noqa: E501 + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """Sets the type of this PreferredWidth. + + Gets the unit of measure used for this preferred width value. # noqa: E501 + + :param type: The type of this PreferredWidth. # noqa: E501 + :type: str + """ + if type is None: + raise ValueError("Invalid value for `type`, must not be `None`") # noqa: E501 + allowed_values = ["Auto", "Percent", "Points"] # noqa: E501 + if not type.isdigit(): + if type not in allowed_values: + raise ValueError( + "Invalid value for `type` ({0}), must be one of {1}" # noqa: E501 + .format(type, allowed_values)) + self._type = type + else: + self._type = allowed_values[int(type) if six.PY3 else long(type)] + @property + def value(self): + """Gets the value of this PreferredWidth. # noqa: E501 + + Gets or sets the preferred width value. The unit of measure is specified in the property. # noqa: E501 + + :return: The value of this PreferredWidth. # noqa: E501 + :rtype: float + """ + return self._value + + @value.setter + def value(self, value): + """Sets the value of this PreferredWidth. + + Gets or sets the preferred width value. The unit of measure is specified in the property. # noqa: E501 + + :param value: The value of this PreferredWidth. # noqa: E501 + :type: float + """ + self._value = value + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PreferredWidth): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/protection_data.py b/asposewordscloud/models/protection_data.py new file mode 100644 index 00000000..3d2be487 --- /dev/null +++ b/asposewordscloud/models/protection_data.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ProtectionData(object): + """Container for the data about protection of the document + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'protection_type': 'str' + } + + attribute_map = { + 'protection_type': 'ProtectionType' + } + + def __init__(self, protection_type=None): # noqa: E501 + """ProtectionData - a model defined in Swagger""" # noqa: E501 + + self._protection_type = None + self.discriminator = None + + if protection_type is not None: + self.protection_type = protection_type + + @property + def protection_type(self): + """Gets the protection_type of this ProtectionData. # noqa: E501 + + Type of the protection # noqa: E501 + + :return: The protection_type of this ProtectionData. # noqa: E501 + :rtype: str + """ + return self._protection_type + + @protection_type.setter + def protection_type(self, protection_type): + """Sets the protection_type of this ProtectionData. + + Type of the protection # noqa: E501 + + :param protection_type: The protection_type of this ProtectionData. # noqa: E501 + :type: str + """ + self._protection_type = protection_type + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ProtectionData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/protection_data_response.py b/asposewordscloud/models/protection_data_response.py new file mode 100644 index 00000000..db1ccf10 --- /dev/null +++ b/asposewordscloud/models/protection_data_response.py @@ -0,0 +1,202 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ProtectionDataResponse(object): + """Response for the request of data about protection + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document_link': 'FileLink', + 'protection_data': 'ProtectionData' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document_link': 'DocumentLink', + 'protection_data': 'ProtectionData' + } + + def __init__(self, code=None, status=None, document_link=None, protection_data=None): # noqa: E501 + """ProtectionDataResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document_link = None + self._protection_data = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document_link is not None: + self.document_link = document_link + if protection_data is not None: + self.protection_data = protection_data + + @property + def code(self): + """Gets the code of this ProtectionDataResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this ProtectionDataResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this ProtectionDataResponse. + + Response status code. # noqa: E501 + + :param code: The code of this ProtectionDataResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this ProtectionDataResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this ProtectionDataResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this ProtectionDataResponse. + + Response status. # noqa: E501 + + :param status: The status of this ProtectionDataResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document_link(self): + """Gets the document_link of this ProtectionDataResponse. # noqa: E501 + + Link to the document # noqa: E501 + + :return: The document_link of this ProtectionDataResponse. # noqa: E501 + :rtype: FileLink + """ + return self._document_link + + @document_link.setter + def document_link(self, document_link): + """Sets the document_link of this ProtectionDataResponse. + + Link to the document # noqa: E501 + + :param document_link: The document_link of this ProtectionDataResponse. # noqa: E501 + :type: FileLink + """ + self._document_link = document_link + @property + def protection_data(self): + """Gets the protection_data of this ProtectionDataResponse. # noqa: E501 + + Protection's data of the document # noqa: E501 + + :return: The protection_data of this ProtectionDataResponse. # noqa: E501 + :rtype: ProtectionData + """ + return self._protection_data + + @protection_data.setter + def protection_data(self, protection_data): + """Sets the protection_data of this ProtectionDataResponse. + + Protection's data of the document # noqa: E501 + + :param protection_data: The protection_data of this ProtectionDataResponse. # noqa: E501 + :type: ProtectionData + """ + self._protection_data = protection_data + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ProtectionDataResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/protection_request.py b/asposewordscloud/models/protection_request.py new file mode 100644 index 00000000..d2837a4b --- /dev/null +++ b/asposewordscloud/models/protection_request.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ProtectionRequest(object): + """Request on changing of protection + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'password': 'str', + 'new_password': 'str', + 'protection_type': 'str' + } + + attribute_map = { + 'password': 'Password', + 'new_password': 'NewPassword', + 'protection_type': 'ProtectionType' + } + + def __init__(self, password=None, new_password=None, protection_type=None): # noqa: E501 + """ProtectionRequest - a model defined in Swagger""" # noqa: E501 + + self._password = None + self._new_password = None + self._protection_type = None + self.discriminator = None + + if password is not None: + self.password = password + if new_password is not None: + self.new_password = new_password + if protection_type is not None: + self.protection_type = protection_type + + @property + def password(self): + """Gets the password of this ProtectionRequest. # noqa: E501 + + Current password # noqa: E501 + + :return: The password of this ProtectionRequest. # noqa: E501 + :rtype: str + """ + return self._password + + @password.setter + def password(self, password): + """Sets the password of this ProtectionRequest. + + Current password # noqa: E501 + + :param password: The password of this ProtectionRequest. # noqa: E501 + :type: str + """ + self._password = password + @property + def new_password(self): + """Gets the new_password of this ProtectionRequest. # noqa: E501 + + New password # noqa: E501 + + :return: The new_password of this ProtectionRequest. # noqa: E501 + :rtype: str + """ + return self._new_password + + @new_password.setter + def new_password(self, new_password): + """Sets the new_password of this ProtectionRequest. + + New password # noqa: E501 + + :param new_password: The new_password of this ProtectionRequest. # noqa: E501 + :type: str + """ + self._new_password = new_password + @property + def protection_type(self): + """Gets the protection_type of this ProtectionRequest. # noqa: E501 + + New type of protection # noqa: E501 + + :return: The protection_type of this ProtectionRequest. # noqa: E501 + :rtype: str + """ + return self._protection_type + + @protection_type.setter + def protection_type(self, protection_type): + """Sets the protection_type of this ProtectionRequest. + + New type of protection # noqa: E501 + + :param protection_type: The protection_type of this ProtectionRequest. # noqa: E501 + :type: str + """ + self._protection_type = protection_type + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ProtectionRequest): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/protection_response.py b/asposewordscloud/models/protection_response.py new file mode 100644 index 00000000..4a7cea5b --- /dev/null +++ b/asposewordscloud/models/protection_response.py @@ -0,0 +1,202 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ProtectionResponse(object): + """Response for the request on changing protection of the document + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document_link': 'FileLink', + 'protection_result': 'bool' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document_link': 'DocumentLink', + 'protection_result': 'ProtectionResult' + } + + def __init__(self, code=None, status=None, document_link=None, protection_result=None): # noqa: E501 + """ProtectionResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document_link = None + self._protection_result = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document_link is not None: + self.document_link = document_link + if protection_result is not None: + self.protection_result = protection_result + + @property + def code(self): + """Gets the code of this ProtectionResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this ProtectionResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this ProtectionResponse. + + Response status code. # noqa: E501 + + :param code: The code of this ProtectionResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this ProtectionResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this ProtectionResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this ProtectionResponse. + + Response status. # noqa: E501 + + :param status: The status of this ProtectionResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document_link(self): + """Gets the document_link of this ProtectionResponse. # noqa: E501 + + Link to the document # noqa: E501 + + :return: The document_link of this ProtectionResponse. # noqa: E501 + :rtype: FileLink + """ + return self._document_link + + @document_link.setter + def document_link(self, document_link): + """Sets the document_link of this ProtectionResponse. + + Link to the document # noqa: E501 + + :param document_link: The document_link of this ProtectionResponse. # noqa: E501 + :type: FileLink + """ + self._document_link = document_link + @property + def protection_result(self): + """Gets the protection_result of this ProtectionResponse. # noqa: E501 + + Result of the changing of protection # noqa: E501 + + :return: The protection_result of this ProtectionResponse. # noqa: E501 + :rtype: bool + """ + return self._protection_result + + @protection_result.setter + def protection_result(self, protection_result): + """Sets the protection_result of this ProtectionResponse. + + Result of the changing of protection # noqa: E501 + + :param protection_result: The protection_result of this ProtectionResponse. # noqa: E501 + :type: bool + """ + self._protection_result = protection_result + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ProtectionResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/ps_save_options_data.py b/asposewordscloud/models/ps_save_options_data.py new file mode 100644 index 00000000..e19720e4 --- /dev/null +++ b/asposewordscloud/models/ps_save_options_data.py @@ -0,0 +1,512 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class PsSaveOptionsData(object): + """container class for ps save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'use_book_fold_printing_settings': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'use_book_fold_printing_settings': 'UseBookFoldPrintingSettings' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, use_book_fold_printing_settings=None): # noqa: E501 + """PsSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._use_book_fold_printing_settings = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if use_book_fold_printing_settings is not None: + self.use_book_fold_printing_settings = use_book_fold_printing_settings + + @property + def color_mode(self): + """Gets the color_mode of this PsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this PsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this PsSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this PsSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this PsSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this PsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this PsSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this PsSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this PsSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this PsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this PsSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this PsSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this PsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this PsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this PsSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this PsSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this PsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this PsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this PsSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this PsSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this PsSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this PsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this PsSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this PsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this PsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this PsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this PsSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this PsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this PsSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this PsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this PsSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this PsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this PsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this PsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this PsSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this PsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this PsSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this PsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this PsSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this PsSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this PsSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this PsSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this PsSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this PsSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this PsSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this PsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this PsSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this PsSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this PsSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this PsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this PsSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this PsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this PsSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this PsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this PsSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this PsSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this PsSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this PsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this PsSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this PsSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def use_book_fold_printing_settings(self): + """Gets the use_book_fold_printing_settings of this PsSaveOptionsData. # noqa: E501 + + Determines whether the document should be saved using a booklet printing layout # noqa: E501 + + :return: The use_book_fold_printing_settings of this PsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_book_fold_printing_settings + + @use_book_fold_printing_settings.setter + def use_book_fold_printing_settings(self, use_book_fold_printing_settings): + """Sets the use_book_fold_printing_settings of this PsSaveOptionsData. + + Determines whether the document should be saved using a booklet printing layout # noqa: E501 + + :param use_book_fold_printing_settings: The use_book_fold_printing_settings of this PsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_book_fold_printing_settings = use_book_fold_printing_settings + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, PsSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/replace_text_request.py b/asposewordscloud/models/replace_text_request.py new file mode 100644 index 00000000..27505b52 --- /dev/null +++ b/asposewordscloud/models/replace_text_request.py @@ -0,0 +1,232 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ReplaceTextRequest(object): + """Class for document replace text request building. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'old_value': 'str', + 'new_value': 'str', + 'is_match_case': 'bool', + 'is_match_whole_word': 'bool', + 'is_old_value_regex': 'bool' + } + + attribute_map = { + 'old_value': 'OldValue', + 'new_value': 'NewValue', + 'is_match_case': 'IsMatchCase', + 'is_match_whole_word': 'IsMatchWholeWord', + 'is_old_value_regex': 'IsOldValueRegex' + } + + def __init__(self, old_value=None, new_value=None, is_match_case=None, is_match_whole_word=None, is_old_value_regex=None): # noqa: E501 + """ReplaceTextRequest - a model defined in Swagger""" # noqa: E501 + + self._old_value = None + self._new_value = None + self._is_match_case = None + self._is_match_whole_word = None + self._is_old_value_regex = None + self.discriminator = None + + if old_value is not None: + self.old_value = old_value + if new_value is not None: + self.new_value = new_value + if is_match_case is not None: + self.is_match_case = is_match_case + if is_match_whole_word is not None: + self.is_match_whole_word = is_match_whole_word + if is_old_value_regex is not None: + self.is_old_value_regex = is_old_value_regex + + @property + def old_value(self): + """Gets the old_value of this ReplaceTextRequest. # noqa: E501 + + Old text value (or regex pattern ) to replace. # noqa: E501 + + :return: The old_value of this ReplaceTextRequest. # noqa: E501 + :rtype: str + """ + return self._old_value + + @old_value.setter + def old_value(self, old_value): + """Sets the old_value of this ReplaceTextRequest. + + Old text value (or regex pattern ) to replace. # noqa: E501 + + :param old_value: The old_value of this ReplaceTextRequest. # noqa: E501 + :type: str + """ + self._old_value = old_value + @property + def new_value(self): + """Gets the new_value of this ReplaceTextRequest. # noqa: E501 + + New text value to replace by. # noqa: E501 + + :return: The new_value of this ReplaceTextRequest. # noqa: E501 + :rtype: str + """ + return self._new_value + + @new_value.setter + def new_value(self, new_value): + """Sets the new_value of this ReplaceTextRequest. + + New text value to replace by. # noqa: E501 + + :param new_value: The new_value of this ReplaceTextRequest. # noqa: E501 + :type: str + """ + self._new_value = new_value + @property + def is_match_case(self): + """Gets the is_match_case of this ReplaceTextRequest. # noqa: E501 + + Flag, true means the search is case-sensitive; false means the search is not case-sensitive. # noqa: E501 + + :return: The is_match_case of this ReplaceTextRequest. # noqa: E501 + :rtype: bool + """ + return self._is_match_case + + @is_match_case.setter + def is_match_case(self, is_match_case): + """Sets the is_match_case of this ReplaceTextRequest. + + Flag, true means the search is case-sensitive; false means the search is not case-sensitive. # noqa: E501 + + :param is_match_case: The is_match_case of this ReplaceTextRequest. # noqa: E501 + :type: bool + """ + if is_match_case is None: + raise ValueError("Invalid value for `is_match_case`, must not be `None`") # noqa: E501 + self._is_match_case = is_match_case + @property + def is_match_whole_word(self): + """Gets the is_match_whole_word of this ReplaceTextRequest. # noqa: E501 + + Flag, means that only whole word matched are replaced. # noqa: E501 + + :return: The is_match_whole_word of this ReplaceTextRequest. # noqa: E501 + :rtype: bool + """ + return self._is_match_whole_word + + @is_match_whole_word.setter + def is_match_whole_word(self, is_match_whole_word): + """Sets the is_match_whole_word of this ReplaceTextRequest. + + Flag, means that only whole word matched are replaced. # noqa: E501 + + :param is_match_whole_word: The is_match_whole_word of this ReplaceTextRequest. # noqa: E501 + :type: bool + """ + if is_match_whole_word is None: + raise ValueError("Invalid value for `is_match_whole_word`, must not be `None`") # noqa: E501 + self._is_match_whole_word = is_match_whole_word + @property + def is_old_value_regex(self): + """Gets the is_old_value_regex of this ReplaceTextRequest. # noqa: E501 + + Flag, means that contains regex expression. # noqa: E501 + + :return: The is_old_value_regex of this ReplaceTextRequest. # noqa: E501 + :rtype: bool + """ + return self._is_old_value_regex + + @is_old_value_regex.setter + def is_old_value_regex(self, is_old_value_regex): + """Sets the is_old_value_regex of this ReplaceTextRequest. + + Flag, means that contains regex expression. # noqa: E501 + + :param is_old_value_regex: The is_old_value_regex of this ReplaceTextRequest. # noqa: E501 + :type: bool + """ + if is_old_value_regex is None: + raise ValueError("Invalid value for `is_old_value_regex`, must not be `None`") # noqa: E501 + self._is_old_value_regex = is_old_value_regex + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ReplaceTextRequest): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/replace_text_response.py b/asposewordscloud/models/replace_text_response.py new file mode 100644 index 00000000..76480189 --- /dev/null +++ b/asposewordscloud/models/replace_text_response.py @@ -0,0 +1,202 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class ReplaceTextResponse(object): + """Response for \"Replace text\" action. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document_link': 'FileLink', + 'matches': 'int' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document_link': 'DocumentLink', + 'matches': 'Matches' + } + + def __init__(self, code=None, status=None, document_link=None, matches=None): # noqa: E501 + """ReplaceTextResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document_link = None + self._matches = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document_link is not None: + self.document_link = document_link + if matches is not None: + self.matches = matches + + @property + def code(self): + """Gets the code of this ReplaceTextResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this ReplaceTextResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this ReplaceTextResponse. + + Response status code. # noqa: E501 + + :param code: The code of this ReplaceTextResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this ReplaceTextResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this ReplaceTextResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this ReplaceTextResponse. + + Response status. # noqa: E501 + + :param status: The status of this ReplaceTextResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document_link(self): + """Gets the document_link of this ReplaceTextResponse. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The document_link of this ReplaceTextResponse. # noqa: E501 + :rtype: FileLink + """ + return self._document_link + + @document_link.setter + def document_link(self, document_link): + """Sets the document_link of this ReplaceTextResponse. + + Link to the document. # noqa: E501 + + :param document_link: The document_link of this ReplaceTextResponse. # noqa: E501 + :type: FileLink + """ + self._document_link = document_link + @property + def matches(self): + """Gets the matches of this ReplaceTextResponse. # noqa: E501 + + Number of occurrences of the captured text in the document. # noqa: E501 + + :return: The matches of this ReplaceTextResponse. # noqa: E501 + :rtype: int + """ + return self._matches + + @matches.setter + def matches(self, matches): + """Sets the matches of this ReplaceTextResponse. + + Number of occurrences of the captured text in the document. # noqa: E501 + + :param matches: The matches of this ReplaceTextResponse. # noqa: E501 + :type: int + """ + self._matches = matches + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, ReplaceTextResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/requests/__init__.py b/asposewordscloud/models/requests/__init__.py new file mode 100644 index 00000000..e3af52f4 --- /dev/null +++ b/asposewordscloud/models/requests/__init__.py @@ -0,0 +1,123 @@ +from asposewordscloud.models.requests.update_table_row_format_request import UpdateTableRowFormatRequest +from asposewordscloud.models.requests.update_table_properties_request import UpdateTablePropertiesRequest +from asposewordscloud.models.requests.update_table_cell_format_request import UpdateTableCellFormatRequest +from asposewordscloud.models.requests.update_section_page_setup_request import UpdateSectionPageSetupRequest +from asposewordscloud.models.requests.update_border_request import UpdateBorderRequest +from asposewordscloud.models.requests.search_request import SearchRequest +from asposewordscloud.models.requests.reset_cache_request import ResetCacheRequest +from asposewordscloud.models.requests.render_table_request import RenderTableRequest +from asposewordscloud.models.requests.render_paragraph_request import RenderParagraphRequest +from asposewordscloud.models.requests.render_page_request import RenderPageRequest +from asposewordscloud.models.requests.render_math_object_request import RenderMathObjectRequest +from asposewordscloud.models.requests.render_drawing_object_request import RenderDrawingObjectRequest +from asposewordscloud.models.requests.reject_all_revisions_request import RejectAllRevisionsRequest +from asposewordscloud.models.requests.put_run_request import PutRunRequest +from asposewordscloud.models.requests.put_protect_document_request import PutProtectDocumentRequest +from asposewordscloud.models.requests.put_paragraph_request import PutParagraphRequest +from asposewordscloud.models.requests.put_header_footer_request import PutHeaderFooterRequest +from asposewordscloud.models.requests.put_form_field_request import PutFormFieldRequest +from asposewordscloud.models.requests.put_footnote_request import PutFootnoteRequest +from asposewordscloud.models.requests.put_field_request import PutFieldRequest +from asposewordscloud.models.requests.put_execute_template_online_request import PutExecuteTemplateOnlineRequest +from asposewordscloud.models.requests.put_execute_mail_merge_online_request import PutExecuteMailMergeOnlineRequest +from asposewordscloud.models.requests.put_drawing_object_request import PutDrawingObjectRequest +from asposewordscloud.models.requests.put_document_save_as_tiff_request import PutDocumentSaveAsTiffRequest +from asposewordscloud.models.requests.put_document_field_names_request import PutDocumentFieldNamesRequest +from asposewordscloud.models.requests.put_create_document_request import PutCreateDocumentRequest +from asposewordscloud.models.requests.put_convert_document_request import PutConvertDocumentRequest +from asposewordscloud.models.requests.put_comment_request import PutCommentRequest +from asposewordscloud.models.requests.post_update_document_fields_request import PostUpdateDocumentFieldsRequest +from asposewordscloud.models.requests.post_update_document_bookmark_request import PostUpdateDocumentBookmarkRequest +from asposewordscloud.models.requests.post_split_document_request import PostSplitDocumentRequest +from asposewordscloud.models.requests.post_run_request import PostRunRequest +from asposewordscloud.models.requests.post_replace_text_request import PostReplaceTextRequest +from asposewordscloud.models.requests.post_load_web_document_request import PostLoadWebDocumentRequest +from asposewordscloud.models.requests.post_insert_page_numbers_request import PostInsertPageNumbersRequest +from asposewordscloud.models.requests.post_insert_document_watermark_text_request import PostInsertDocumentWatermarkTextRequest +from asposewordscloud.models.requests.post_insert_document_watermark_image_request import PostInsertDocumentWatermarkImageRequest +from asposewordscloud.models.requests.post_form_field_request import PostFormFieldRequest +from asposewordscloud.models.requests.post_footnote_request import PostFootnoteRequest +from asposewordscloud.models.requests.post_field_request import PostFieldRequest +from asposewordscloud.models.requests.post_execute_template_request import PostExecuteTemplateRequest +from asposewordscloud.models.requests.post_drawing_object_request import PostDrawingObjectRequest +from asposewordscloud.models.requests.post_document_save_as_request import PostDocumentSaveAsRequest +from asposewordscloud.models.requests.post_document_paragraph_run_font_request import PostDocumentParagraphRunFontRequest +from asposewordscloud.models.requests.post_document_execute_mail_merge_request import PostDocumentExecuteMailMergeRequest +from asposewordscloud.models.requests.post_compare_document_request import PostCompareDocumentRequest +from asposewordscloud.models.requests.post_comment_request import PostCommentRequest +from asposewordscloud.models.requests.post_change_document_protection_request import PostChangeDocumentProtectionRequest +from asposewordscloud.models.requests.post_append_document_request import PostAppendDocumentRequest +from asposewordscloud.models.requests.insert_table_row_request import InsertTableRowRequest +from asposewordscloud.models.requests.insert_table_cell_request import InsertTableCellRequest +from asposewordscloud.models.requests.insert_table_request import InsertTableRequest +from asposewordscloud.models.requests.get_tables_request import GetTablesRequest +from asposewordscloud.models.requests.get_table_row_format_request import GetTableRowFormatRequest +from asposewordscloud.models.requests.get_table_row_request import GetTableRowRequest +from asposewordscloud.models.requests.get_table_properties_request import GetTablePropertiesRequest +from asposewordscloud.models.requests.get_table_cell_format_request import GetTableCellFormatRequest +from asposewordscloud.models.requests.get_table_cell_request import GetTableCellRequest +from asposewordscloud.models.requests.get_table_request import GetTableRequest +from asposewordscloud.models.requests.get_sections_request import GetSectionsRequest +from asposewordscloud.models.requests.get_section_page_setup_request import GetSectionPageSetupRequest +from asposewordscloud.models.requests.get_section_request import GetSectionRequest +from asposewordscloud.models.requests.get_office_math_objects_request import GetOfficeMathObjectsRequest +from asposewordscloud.models.requests.get_office_math_object_request import GetOfficeMathObjectRequest +from asposewordscloud.models.requests.get_header_footers_request import GetHeaderFootersRequest +from asposewordscloud.models.requests.get_header_footer_of_section_request import GetHeaderFooterOfSectionRequest +from asposewordscloud.models.requests.get_header_footer_request import GetHeaderFooterRequest +from asposewordscloud.models.requests.get_form_fields_request import GetFormFieldsRequest +from asposewordscloud.models.requests.get_form_field_request import GetFormFieldRequest +from asposewordscloud.models.requests.get_footnotes_request import GetFootnotesRequest +from asposewordscloud.models.requests.get_footnote_request import GetFootnoteRequest +from asposewordscloud.models.requests.get_fields_request import GetFieldsRequest +from asposewordscloud.models.requests.get_field_request import GetFieldRequest +from asposewordscloud.models.requests.get_document_with_format_request import GetDocumentWithFormatRequest +from asposewordscloud.models.requests.get_document_text_items_request import GetDocumentTextItemsRequest +from asposewordscloud.models.requests.get_document_statistics_request import GetDocumentStatisticsRequest +from asposewordscloud.models.requests.get_document_protection_request import GetDocumentProtectionRequest +from asposewordscloud.models.requests.get_document_property_request import GetDocumentPropertyRequest +from asposewordscloud.models.requests.get_document_properties_request import GetDocumentPropertiesRequest +from asposewordscloud.models.requests.get_document_paragraphs_request import GetDocumentParagraphsRequest +from asposewordscloud.models.requests.get_document_paragraph_runs_request import GetDocumentParagraphRunsRequest +from asposewordscloud.models.requests.get_document_paragraph_run_font_request import GetDocumentParagraphRunFontRequest +from asposewordscloud.models.requests.get_document_paragraph_run_request import GetDocumentParagraphRunRequest +from asposewordscloud.models.requests.get_document_paragraph_request import GetDocumentParagraphRequest +from asposewordscloud.models.requests.get_document_hyperlinks_request import GetDocumentHyperlinksRequest +from asposewordscloud.models.requests.get_document_hyperlink_by_index_request import GetDocumentHyperlinkByIndexRequest +from asposewordscloud.models.requests.get_document_field_names_request import GetDocumentFieldNamesRequest +from asposewordscloud.models.requests.get_document_drawing_objects_request import GetDocumentDrawingObjectsRequest +from asposewordscloud.models.requests.get_document_drawing_object_ole_data_request import GetDocumentDrawingObjectOleDataRequest +from asposewordscloud.models.requests.get_document_drawing_object_image_data_request import GetDocumentDrawingObjectImageDataRequest +from asposewordscloud.models.requests.get_document_drawing_object_by_index_request import GetDocumentDrawingObjectByIndexRequest +from asposewordscloud.models.requests.get_document_bookmarks_request import GetDocumentBookmarksRequest +from asposewordscloud.models.requests.get_document_bookmark_by_name_request import GetDocumentBookmarkByNameRequest +from asposewordscloud.models.requests.get_document_request import GetDocumentRequest +from asposewordscloud.models.requests.get_comments_request import GetCommentsRequest +from asposewordscloud.models.requests.get_comment_request import GetCommentRequest +from asposewordscloud.models.requests.get_borders_request import GetBordersRequest +from asposewordscloud.models.requests.get_border_request import GetBorderRequest +from asposewordscloud.models.requests.get_available_fonts_request import GetAvailableFontsRequest +from asposewordscloud.models.requests.delete_unprotect_document_request import DeleteUnprotectDocumentRequest +from asposewordscloud.models.requests.delete_table_row_request import DeleteTableRowRequest +from asposewordscloud.models.requests.delete_table_cell_request import DeleteTableCellRequest +from asposewordscloud.models.requests.delete_table_request import DeleteTableRequest +from asposewordscloud.models.requests.delete_run_request import DeleteRunRequest +from asposewordscloud.models.requests.delete_paragraph_request import DeleteParagraphRequest +from asposewordscloud.models.requests.delete_office_math_object_request import DeleteOfficeMathObjectRequest +from asposewordscloud.models.requests.delete_headers_footers_request import DeleteHeadersFootersRequest +from asposewordscloud.models.requests.delete_header_footer_request import DeleteHeaderFooterRequest +from asposewordscloud.models.requests.delete_form_field_request import DeleteFormFieldRequest +from asposewordscloud.models.requests.delete_footnote_request import DeleteFootnoteRequest +from asposewordscloud.models.requests.delete_fields_request import DeleteFieldsRequest +from asposewordscloud.models.requests.delete_field_request import DeleteFieldRequest +from asposewordscloud.models.requests.delete_drawing_object_request import DeleteDrawingObjectRequest +from asposewordscloud.models.requests.delete_document_watermark_request import DeleteDocumentWatermarkRequest +from asposewordscloud.models.requests.delete_document_property_request import DeleteDocumentPropertyRequest +from asposewordscloud.models.requests.delete_document_macros_request import DeleteDocumentMacrosRequest +from asposewordscloud.models.requests.delete_comment_request import DeleteCommentRequest +from asposewordscloud.models.requests.delete_borders_request import DeleteBordersRequest +from asposewordscloud.models.requests.delete_border_request import DeleteBorderRequest +from asposewordscloud.models.requests.create_or_update_document_property_request import CreateOrUpdateDocumentPropertyRequest +from asposewordscloud.models.requests.classify_document_request import ClassifyDocumentRequest +from asposewordscloud.models.requests.classify_request import ClassifyRequest +from asposewordscloud.models.requests.accept_all_revisions_request import AcceptAllRevisionsRequest diff --git a/asposewordscloud/models/requests/accept_all_revisions_request.py b/asposewordscloud/models/requests/accept_all_revisions_request.py new file mode 100644 index 00000000..06373ec3 --- /dev/null +++ b/asposewordscloud/models/requests/accept_all_revisions_request.py @@ -0,0 +1,47 @@ + + +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class AcceptAllRevisionsRequest(object): + """ + Request model for accept_all_revisions operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/classify_document_request.py b/asposewordscloud/models/requests/classify_document_request.py new file mode 100644 index 00000000..b54311e8 --- /dev/null +++ b/asposewordscloud/models/requests/classify_document_request.py @@ -0,0 +1,46 @@ +t +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class ClassifyDocumentRequest(object): + """ + Request model for classify_document operation. + Initializes a new instance. + :param document_name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param best_classes_count Count of the best classes to return. + """ + + def __init__(self, document_name, folder=None, storage=None, load_encoding=None, password=None, best_classes_count=None): + self.document_name = document_name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.best_classes_count = best_classes_coun \ No newline at end of file diff --git a/asposewordscloud/models/requests/classify_request.py b/asposewordscloud/models/requests/classify_request.py new file mode 100644 index 00000000..d22e39d8 --- /dev/null +++ b/asposewordscloud/models/requests/classify_request.py @@ -0,0 +1,38 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class ClassifyRequest(object): + """ + Request model for classify operation. + Initializes a new instance. + :param text Text to classify. + :param best_classes_count Count of the best classes to return. + """ + + def __init__(self, text, best_classes_count=None): + self.text = text + self.best_classes_count = best_classes_coun \ No newline at end of file diff --git a/asposewordscloud/models/requests/create_or_update_document_property_request.py b/asposewordscloud/models/requests/create_or_update_document_property_request.py new file mode 100644 index 00000000..900f136a --- /dev/null +++ b/asposewordscloud/models/requests/create_or_update_document_property_request.py @@ -0,0 +1,54 @@ +t +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class CreateOrUpdateDocumentPropertyRequest(object): + """ + Request model for create_or_update_document_property operation. + Initializes a new instance. + :param name The document name. + :param property_name The property name. + :param _property The property with new value. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, property_name, _property, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.property_name = property_name + self._property = _property + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_border_request.py b/asposewordscloud/models/requests/delete_border_request.py new file mode 100644 index 00000000..2fa07b03 --- /dev/null +++ b/asposewordscloud/models/requests/delete_border_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteBorderRequest(object): + """ + Request model for delete_border operation. + Initializes a new instance. + :param name The document name. + :param node_path Path to node with border(node should be cell or row). + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, node_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.node_path = node_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_borders_request.py b/asposewordscloud/models/requests/delete_borders_request.py new file mode 100644 index 00000000..70183a5a --- /dev/null +++ b/asposewordscloud/models/requests/delete_borders_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteBordersRequest(object): + """ + Request model for delete_borders operation. + Initializes a new instance. + :param name The document name. + :param node_path Path to node with borders(node should be cell or row). + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, node_path, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.node_path = node_path + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_comment_request.py b/asposewordscloud/models/requests/delete_comment_request.py new file mode 100644 index 00000000..a5ad3449 --- /dev/null +++ b/asposewordscloud/models/requests/delete_comment_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteCommentRequest(object): + """ + Request model for delete_comment operation. + Initializes a new instance. + :param name The file name. + :param comment_index Comment index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, comment_index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.comment_index = comment_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_document_macros_request.py b/asposewordscloud/models/requests/delete_document_macros_request.py new file mode 100644 index 00000000..fb33c0c6 --- /dev/null +++ b/asposewordscloud/models/requests/delete_document_macros_request.py @@ -0,0 +1,50 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteDocumentMacrosRequest(object): + """ + Request model for delete_document_macros operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_document_property_request.py b/asposewordscloud/models/requests/delete_document_property_request.py new file mode 100644 index 00000000..1c13a500 --- /dev/null +++ b/asposewordscloud/models/requests/delete_document_property_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteDocumentPropertyRequest(object): + """ + Request model for delete_document_property operation. + Initializes a new instance. + :param name The document name. + :param property_name The property name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, property_name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.property_name = property_name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_document_watermark_request.py b/asposewordscloud/models/requests/delete_document_watermark_request.py new file mode 100644 index 00000000..835d7213 --- /dev/null +++ b/asposewordscloud/models/requests/delete_document_watermark_request.py @@ -0,0 +1,50 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteDocumentWatermarkRequest(object): + """ + Request model for delete_document_watermark operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_drawing_object_request.py b/asposewordscloud/models/requests/delete_drawing_object_request.py new file mode 100644 index 00000000..73273929 --- /dev/null +++ b/asposewordscloud/models/requests/delete_drawing_object_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteDrawingObjectRequest(object): + """ + Request model for delete_drawing_object operation. + Initializes a new instance. + :param name The file name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_field_request.py b/asposewordscloud/models/requests/delete_field_request.py new file mode 100644 index 00000000..60033fee --- /dev/null +++ b/asposewordscloud/models/requests/delete_field_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteFieldRequest(object): + """ + Request model for delete_field operation. + Initializes a new instance. + :param name The file name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of fields. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_fields_request.py b/asposewordscloud/models/requests/delete_fields_request.py new file mode 100644 index 00000000..f297e9da --- /dev/null +++ b/asposewordscloud/models/requests/delete_fields_request.py @@ -0,0 +1,52 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteFieldsRequest(object): + """ + Request model for delete_fields operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of fields. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_footnote_request.py b/asposewordscloud/models/requests/delete_footnote_request.py new file mode 100644 index 00000000..a0cd65b8 --- /dev/null +++ b/asposewordscloud/models/requests/delete_footnote_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteFootnoteRequest(object): + """ + Request model for delete_footnote operation. + Initializes a new instance. + :param name The file name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of footnotes. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_form_field_request.py b/asposewordscloud/models/requests/delete_form_field_request.py new file mode 100644 index 00000000..08ed4a75 --- /dev/null +++ b/asposewordscloud/models/requests/delete_form_field_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteFormFieldRequest(object): + """ + Request model for delete_form_field operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node that contains collection of formfields. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_header_footer_request.py b/asposewordscloud/models/requests/delete_header_footer_request.py new file mode 100644 index 00000000..ac01173e --- /dev/null +++ b/asposewordscloud/models/requests/delete_header_footer_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteHeaderFooterRequest(object): + """ + Request model for delete_header_footer operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param section_path Path to parent section. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, section_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.section_path = section_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_headers_footers_request.py b/asposewordscloud/models/requests/delete_headers_footers_request.py new file mode 100644 index 00000000..6bb83a46 --- /dev/null +++ b/asposewordscloud/models/requests/delete_headers_footers_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteHeadersFootersRequest(object): + """ + Request model for delete_headers_footers operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param section_path Path to parent section. + :param headers_footers_types List of types of headers and footers. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, section_path=None, headers_footers_types=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.section_path = section_path + self.headers_footers_types = headers_footers_type \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_office_math_object_request.py b/asposewordscloud/models/requests/delete_office_math_object_request.py new file mode 100644 index 00000000..faac25fc --- /dev/null +++ b/asposewordscloud/models/requests/delete_office_math_object_request.py @@ -0,0 +1,54 @@ +s +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteOfficeMathObjectRequest(object): + """ + Request model for delete_office_math_object operation. + Initializes a new instance. + :param name The file name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of OfficeMath objects. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_paragraph_request.py b/asposewordscloud/models/requests/delete_paragraph_request.py new file mode 100644 index 00000000..5b2d9730 --- /dev/null +++ b/asposewordscloud/models/requests/delete_paragraph_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteParagraphRequest(object): + """ + Request model for delete_paragraph operation. + Initializes a new instance. + :param name The file name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node which contains paragraphs. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_run_request.py b/asposewordscloud/models/requests/delete_run_request.py new file mode 100644 index 00000000..a73cd3a0 --- /dev/null +++ b/asposewordscloud/models/requests/delete_run_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteRunRequest(object): + """ + Request model for delete_run operation. + Initializes a new instance. + :param name The file name. + :param paragraph_path Path to parent paragraph. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, paragraph_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.paragraph_path = paragraph_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_table_cell_request.py b/asposewordscloud/models/requests/delete_table_cell_request.py new file mode 100644 index 00000000..79471402 --- /dev/null +++ b/asposewordscloud/models/requests/delete_table_cell_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteTableCellRequest(object): + """ + Request model for delete_table_cell operation. + Initializes a new instance. + :param name The document name. + :param table_row_path Path to table row. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, table_row_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.table_row_path = table_row_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_table_request.py b/asposewordscloud/models/requests/delete_table_request.py new file mode 100644 index 00000000..f0053a57 --- /dev/null +++ b/asposewordscloud/models/requests/delete_table_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteTableRequest(object): + """ + Request model for delete_table operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains tables. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_table_row_request.py b/asposewordscloud/models/requests/delete_table_row_request.py new file mode 100644 index 00000000..1c0e782b --- /dev/null +++ b/asposewordscloud/models/requests/delete_table_row_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteTableRowRequest(object): + """ + Request model for delete_table_row operation. + Initializes a new instance. + :param name The document name. + :param table_path Path to table. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, table_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.table_path = table_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/delete_unprotect_document_request.py b/asposewordscloud/models/requests/delete_unprotect_document_request.py new file mode 100644 index 00000000..b1f7144d --- /dev/null +++ b/asposewordscloud/models/requests/delete_unprotect_document_request.py @@ -0,0 +1,48 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class DeleteUnprotectDocumentRequest(object): + """ + Request model for delete_unprotect_document operation. + Initializes a new instance. + :param name The document name. + :param protection_request with protection settings. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, protection_request, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.protection_request = protection_request + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_available_fonts_request.py b/asposewordscloud/models/requests/get_available_fonts_request.py new file mode 100644 index 00000000..9184852a --- /dev/null +++ b/asposewordscloud/models/requests/get_available_fonts_request.py @@ -0,0 +1,36 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetAvailableFontsRequest(object): + """ + Request model for get_available_fonts operation. + Initializes a new instance. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, fonts_location=None): + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_border_request.py b/asposewordscloud/models/requests/get_border_request.py new file mode 100644 index 00000000..80b86719 --- /dev/null +++ b/asposewordscloud/models/requests/get_border_request.py @@ -0,0 +1,48 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetBorderRequest(object): + """ + Request model for get_border operation. + Initializes a new instance. + :param name The document name. + :param node_path Path to node with border(node should be cell or row). + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, node_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.node_path = node_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_borders_request.py b/asposewordscloud/models/requests/get_borders_request.py new file mode 100644 index 00000000..dfd389d5 --- /dev/null +++ b/asposewordscloud/models/requests/get_borders_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetBordersRequest(object): + """ + Request model for get_borders operation. + Initializes a new instance. + :param name The document name. + :param node_path Path to node with borders(node should be cell or row). + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, node_path, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.node_path = node_path + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_comment_request.py b/asposewordscloud/models/requests/get_comment_request.py new file mode 100644 index 00000000..a36bc47b --- /dev/null +++ b/asposewordscloud/models/requests/get_comment_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetCommentRequest(object): + """ + Request model for get_comment operation. + Initializes a new instance. + :param name The file name. + :param comment_index Comment index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, comment_index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.comment_index = comment_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_comments_request.py b/asposewordscloud/models/requests/get_comments_request.py new file mode 100644 index 00000000..1efc13d9 --- /dev/null +++ b/asposewordscloud/models/requests/get_comments_request.py @@ -0,0 +1,44 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetCommentsRequest(object): + """ + Request model for get_comments operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_bookmark_by_name_request.py b/asposewordscloud/models/requests/get_document_bookmark_by_name_request.py new file mode 100644 index 00000000..9ba3eea2 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_bookmark_by_name_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentBookmarkByNameRequest(object): + """ + Request model for get_document_bookmark_by_name operation. + Initializes a new instance. + :param name The document name. + :param bookmark_name The bookmark name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, bookmark_name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.bookmark_name = bookmark_name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_bookmarks_request.py b/asposewordscloud/models/requests/get_document_bookmarks_request.py new file mode 100644 index 00000000..1b67731f --- /dev/null +++ b/asposewordscloud/models/requests/get_document_bookmarks_request.py @@ -0,0 +1,44 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentBookmarksRequest(object): + """ + Request model for get_document_bookmarks operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_drawing_object_by_index_request.py b/asposewordscloud/models/requests/get_document_drawing_object_by_index_request.py new file mode 100644 index 00000000..b06297be --- /dev/null +++ b/asposewordscloud/models/requests/get_document_drawing_object_by_index_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentDrawingObjectByIndexRequest(object): + """ + Request model for get_document_drawing_object_by_index operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_drawing_object_image_data_request.py b/asposewordscloud/models/requests/get_document_drawing_object_image_data_request.py new file mode 100644 index 00000000..3a3b21e4 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_drawing_object_image_data_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentDrawingObjectImageDataRequest(object): + """ + Request model for get_document_drawing_object_image_data operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_drawing_object_ole_data_request.py b/asposewordscloud/models/requests/get_document_drawing_object_ole_data_request.py new file mode 100644 index 00000000..d814cd60 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_drawing_object_ole_data_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentDrawingObjectOleDataRequest(object): + """ + Request model for get_document_drawing_object_ole_data operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_drawing_objects_request.py b/asposewordscloud/models/requests/get_document_drawing_objects_request.py new file mode 100644 index 00000000..6937e4dd --- /dev/null +++ b/asposewordscloud/models/requests/get_document_drawing_objects_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentDrawingObjectsRequest(object): + """ + Request model for get_document_drawing_objects operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_field_names_request.py b/asposewordscloud/models/requests/get_document_field_names_request.py new file mode 100644 index 00000000..459b9e3c --- /dev/null +++ b/asposewordscloud/models/requests/get_document_field_names_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentFieldNamesRequest(object): + """ + Request model for get_document_field_names operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param use_non_merge_fields If true, result includes \"mustache\" field names. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, use_non_merge_fields=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.use_non_merge_fields = use_non_merge_field \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_hyperlink_by_index_request.py b/asposewordscloud/models/requests/get_document_hyperlink_by_index_request.py new file mode 100644 index 00000000..c0a74230 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_hyperlink_by_index_request.py @@ -0,0 +1,46 @@ +s +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentHyperlinkByIndexRequest(object): + """ + Request model for get_document_hyperlink_by_index operation. + Initializes a new instance. + :param name The document name. + :param hyperlink_index The hyperlink index. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, hyperlink_index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.hyperlink_index = hyperlink_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_hyperlinks_request.py b/asposewordscloud/models/requests/get_document_hyperlinks_request.py new file mode 100644 index 00000000..eeb9ef8d --- /dev/null +++ b/asposewordscloud/models/requests/get_document_hyperlinks_request.py @@ -0,0 +1,44 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentHyperlinksRequest(object): + """ + Request model for get_document_hyperlinks operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_paragraph_request.py b/asposewordscloud/models/requests/get_document_paragraph_request.py new file mode 100644 index 00000000..fceb9d6d --- /dev/null +++ b/asposewordscloud/models/requests/get_document_paragraph_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentParagraphRequest(object): + """ + Request model for get_document_paragraph operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node which contains paragraphs. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_paragraph_run_font_request.py b/asposewordscloud/models/requests/get_document_paragraph_run_font_request.py new file mode 100644 index 00000000..7b591b55 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_paragraph_run_font_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentParagraphRunFontRequest(object): + """ + Request model for get_document_paragraph_run_font operation. + Initializes a new instance. + :param name The document name. + :param paragraph_path Path to parent paragraph. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, paragraph_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.paragraph_path = paragraph_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_paragraph_run_request.py b/asposewordscloud/models/requests/get_document_paragraph_run_request.py new file mode 100644 index 00000000..cd40d285 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_paragraph_run_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentParagraphRunRequest(object): + """ + Request model for get_document_paragraph_run operation. + Initializes a new instance. + :param name The document name. + :param paragraph_path Path to parent paragraph. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, paragraph_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.paragraph_path = paragraph_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_paragraph_runs_request.py b/asposewordscloud/models/requests/get_document_paragraph_runs_request.py new file mode 100644 index 00000000..60f29169 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_paragraph_runs_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentParagraphRunsRequest(object): + """ + Request model for get_document_paragraph_runs operation. + Initializes a new instance. + :param name The document name. + :param paragraph_path Path to parent paragraph. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, paragraph_path, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.paragraph_path = paragraph_path + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_paragraphs_request.py b/asposewordscloud/models/requests/get_document_paragraphs_request.py new file mode 100644 index 00000000..d9cb9eeb --- /dev/null +++ b/asposewordscloud/models/requests/get_document_paragraphs_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentParagraphsRequest(object): + """ + Request model for get_document_paragraphs operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node which contains paragraphs. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_properties_request.py b/asposewordscloud/models/requests/get_document_properties_request.py new file mode 100644 index 00000000..d71e082c --- /dev/null +++ b/asposewordscloud/models/requests/get_document_properties_request.py @@ -0,0 +1,44 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentPropertiesRequest(object): + """ + Request model for get_document_properties operation. + Initializes a new instance. + :param name The document's name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_property_request.py b/asposewordscloud/models/requests/get_document_property_request.py new file mode 100644 index 00000000..8775729d --- /dev/null +++ b/asposewordscloud/models/requests/get_document_property_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentPropertyRequest(object): + """ + Request model for get_document_property operation. + Initializes a new instance. + :param name The document name. + :param property_name The property name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, property_name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.property_name = property_name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_protection_request.py b/asposewordscloud/models/requests/get_document_protection_request.py new file mode 100644 index 00000000..d68add4c --- /dev/null +++ b/asposewordscloud/models/requests/get_document_protection_request.py @@ -0,0 +1,44 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentProtectionRequest(object): + """ + Request model for get_document_protection operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_request.py b/asposewordscloud/models/requests/get_document_request.py new file mode 100644 index 00000000..c4294f79 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_request.py @@ -0,0 +1,44 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentRequest(object): + """ + Request model for get_document operation. + Initializes a new instance. + :param document_name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, document_name, folder=None, storage=None, load_encoding=None, password=None): + self.document_name = document_name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_statistics_request.py b/asposewordscloud/models/requests/get_document_statistics_request.py new file mode 100644 index 00000000..dcb291f4 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_statistics_request.py @@ -0,0 +1,50 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentStatisticsRequest(object): + """ + Request model for get_document_statistics operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param include_comments Support including/excluding comments from the WordCount. Default value is \"true\". + :param include_footnotes Support including/excluding footnotes from the WordCount. Default value is \"false\". + :param include_text_in_shapes Support including/excluding shape's text from the WordCount. Default value is \"false\" + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, include_comments=None, include_footnotes=None, include_text_in_shapes=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.include_comments = include_comments + self.include_footnotes = include_footnotes + self.include_text_in_shapes = include_text_in_shape \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_text_items_request.py b/asposewordscloud/models/requests/get_document_text_items_request.py new file mode 100644 index 00000000..2c8e18e8 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_text_items_request.py @@ -0,0 +1,44 @@ +s +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentTextItemsRequest(object): + """ + Request model for get_document_text_items operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_document_with_format_request.py b/asposewordscloud/models/requests/get_document_with_format_request.py new file mode 100644 index 00000000..64a02bd6 --- /dev/null +++ b/asposewordscloud/models/requests/get_document_with_format_request.py @@ -0,0 +1,50 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetDocumentWithFormatRequest(object): + """ + Request model for get_document_with_format operation. + Initializes a new instance. + :param name The file name. + :param format The destination format. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param out_path Path to save result + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, format, folder=None, storage=None, load_encoding=None, password=None, out_path=None, fonts_location=None): + self.name = name + self.format = format + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.out_path = out_path + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_field_request.py b/asposewordscloud/models/requests/get_field_request.py new file mode 100644 index 00000000..22752368 --- /dev/null +++ b/asposewordscloud/models/requests/get_field_request.py @@ -0,0 +1,48 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetFieldRequest(object): + """ + Request model for get_field operation. + Initializes a new instance. + :param name The file name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of fields. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_fields_request.py b/asposewordscloud/models/requests/get_fields_request.py new file mode 100644 index 00000000..796c27e0 --- /dev/null +++ b/asposewordscloud/models/requests/get_fields_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetFieldsRequest(object): + """ + Request model for get_fields operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of fields. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_footnote_request.py b/asposewordscloud/models/requests/get_footnote_request.py new file mode 100644 index 00000000..f8b497f7 --- /dev/null +++ b/asposewordscloud/models/requests/get_footnote_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetFootnoteRequest(object): + """ + Request model for get_footnote operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of footnotes. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_footnotes_request.py b/asposewordscloud/models/requests/get_footnotes_request.py new file mode 100644 index 00000000..b3bc3692 --- /dev/null +++ b/asposewordscloud/models/requests/get_footnotes_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetFootnotesRequest(object): + """ + Request model for get_footnotes operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of footnotes. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_form_field_request.py b/asposewordscloud/models/requests/get_form_field_request.py new file mode 100644 index 00000000..9b0caf88 --- /dev/null +++ b/asposewordscloud/models/requests/get_form_field_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetFormFieldRequest(object): + """ + Request model for get_form_field operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node that contains collection of formfields. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_form_fields_request.py b/asposewordscloud/models/requests/get_form_fields_request.py new file mode 100644 index 00000000..7843f265 --- /dev/null +++ b/asposewordscloud/models/requests/get_form_fields_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetFormFieldsRequest(object): + """ + Request model for get_form_fields operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node containing collection of form fields. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_header_footer_of_section_request.py b/asposewordscloud/models/requests/get_header_footer_of_section_request.py new file mode 100644 index 00000000..39dd6ed3 --- /dev/null +++ b/asposewordscloud/models/requests/get_header_footer_of_section_request.py @@ -0,0 +1,50 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetHeaderFooterOfSectionRequest(object): + """ + Request model for get_header_footer_of_section operation. + Initializes a new instance. + :param name The document name. + :param header_footer_index Header/footer index. + :param section_index Section index. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param filter_by_type List of types of headers and footers. + """ + + def __init__(self, name, header_footer_index, section_index, folder=None, storage=None, load_encoding=None, password=None, filter_by_type=None): + self.name = name + self.header_footer_index = header_footer_index + self.section_index = section_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.filter_by_type = filter_by_typ \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_header_footer_request.py b/asposewordscloud/models/requests/get_header_footer_request.py new file mode 100644 index 00000000..3d8d4ebe --- /dev/null +++ b/asposewordscloud/models/requests/get_header_footer_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetHeaderFooterRequest(object): + """ + Request model for get_header_footer operation. + Initializes a new instance. + :param name The document name. + :param header_footer_index Header/footer index. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param filter_by_type List of types of headers and footers. + """ + + def __init__(self, name, header_footer_index, folder=None, storage=None, load_encoding=None, password=None, filter_by_type=None): + self.name = name + self.header_footer_index = header_footer_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.filter_by_type = filter_by_typ \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_header_footers_request.py b/asposewordscloud/models/requests/get_header_footers_request.py new file mode 100644 index 00000000..39684958 --- /dev/null +++ b/asposewordscloud/models/requests/get_header_footers_request.py @@ -0,0 +1,48 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetHeaderFootersRequest(object): + """ + Request model for get_header_footers operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param section_path Path to parent section. + :param filter_by_type List of types of headers and footers. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, section_path=None, filter_by_type=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.section_path = section_path + self.filter_by_type = filter_by_typ \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_office_math_object_request.py b/asposewordscloud/models/requests/get_office_math_object_request.py new file mode 100644 index 00000000..3d73824b --- /dev/null +++ b/asposewordscloud/models/requests/get_office_math_object_request.py @@ -0,0 +1,48 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetOfficeMathObjectRequest(object): + """ + Request model for get_office_math_object operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of OfficeMath objects. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_office_math_objects_request.py b/asposewordscloud/models/requests/get_office_math_objects_request.py new file mode 100644 index 00000000..e355fa47 --- /dev/null +++ b/asposewordscloud/models/requests/get_office_math_objects_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetOfficeMathObjectsRequest(object): + """ + Request model for get_office_math_objects operation. + Initializes a new instance. + :param name The file name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains collection of OfficeMath objects. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_section_page_setup_request.py b/asposewordscloud/models/requests/get_section_page_setup_request.py new file mode 100644 index 00000000..2d807242 --- /dev/null +++ b/asposewordscloud/models/requests/get_section_page_setup_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetSectionPageSetupRequest(object): + """ + Request model for get_section_page_setup operation. + Initializes a new instance. + :param name The document name. + :param section_index Section index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, section_index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.section_index = section_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_section_request.py b/asposewordscloud/models/requests/get_section_request.py new file mode 100644 index 00000000..06661fc8 --- /dev/null +++ b/asposewordscloud/models/requests/get_section_request.py @@ -0,0 +1,46 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetSectionRequest(object): + """ + Request model for get_section operation. + Initializes a new instance. + :param name The document name. + :param section_index Section index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, section_index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.section_index = section_index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_sections_request.py b/asposewordscloud/models/requests/get_sections_request.py new file mode 100644 index 00000000..293fd4fe --- /dev/null +++ b/asposewordscloud/models/requests/get_sections_request.py @@ -0,0 +1,44 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetSectionsRequest(object): + """ + Request model for get_sections operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_table_cell_format_request.py b/asposewordscloud/models/requests/get_table_cell_format_request.py new file mode 100644 index 00000000..c91277fb --- /dev/null +++ b/asposewordscloud/models/requests/get_table_cell_format_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTableCellFormatRequest(object): + """ + Request model for get_table_cell_format operation. + Initializes a new instance. + :param name The document name. + :param table_row_path Path to table row. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, table_row_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.table_row_path = table_row_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_table_cell_request.py b/asposewordscloud/models/requests/get_table_cell_request.py new file mode 100644 index 00000000..8cfe9395 --- /dev/null +++ b/asposewordscloud/models/requests/get_table_cell_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTableCellRequest(object): + """ + Request model for get_table_cell operation. + Initializes a new instance. + :param name The document name. + :param table_row_path Path to table row. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, table_row_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.table_row_path = table_row_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_table_properties_request.py b/asposewordscloud/models/requests/get_table_properties_request.py new file mode 100644 index 00000000..e2cbad4b --- /dev/null +++ b/asposewordscloud/models/requests/get_table_properties_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTablePropertiesRequest(object): + """ + Request model for get_table_properties operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains tables. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_table_request.py b/asposewordscloud/models/requests/get_table_request.py new file mode 100644 index 00000000..97eda3d7 --- /dev/null +++ b/asposewordscloud/models/requests/get_table_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTableRequest(object): + """ + Request model for get_table operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains tables. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_table_row_format_request.py b/asposewordscloud/models/requests/get_table_row_format_request.py new file mode 100644 index 00000000..d8c06845 --- /dev/null +++ b/asposewordscloud/models/requests/get_table_row_format_request.py @@ -0,0 +1,48 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTableRowFormatRequest(object): + """ + Request model for get_table_row_format operation. + Initializes a new instance. + :param name The document name. + :param table_path Path to table. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, table_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.table_path = table_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_table_row_request.py b/asposewordscloud/models/requests/get_table_row_request.py new file mode 100644 index 00000000..973143d6 --- /dev/null +++ b/asposewordscloud/models/requests/get_table_row_request.py @@ -0,0 +1,48 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTableRowRequest(object): + """ + Request model for get_table_row operation. + Initializes a new instance. + :param name The document name. + :param table_path Path to table. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, table_path, index, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.table_path = table_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/get_tables_request.py b/asposewordscloud/models/requests/get_tables_request.py new file mode 100644 index 00000000..74a671f5 --- /dev/null +++ b/asposewordscloud/models/requests/get_tables_request.py @@ -0,0 +1,46 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class GetTablesRequest(object): + """ + Request model for get_tables operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains tables. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/insert_table_cell_request.py b/asposewordscloud/models/requests/insert_table_cell_request.py new file mode 100644 index 00000000..6588b8c5 --- /dev/null +++ b/asposewordscloud/models/requests/insert_table_cell_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class InsertTableCellRequest(object): + """ + Request model for insert_table_cell operation. + Initializes a new instance. + :param name The document name. + :param table_row_path Path to table row. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param cell Table cell parameters/ + """ + + def __init__(self, name, table_row_path, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, cell=None): + self.name = name + self.table_row_path = table_row_path + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.cell = cel \ No newline at end of file diff --git a/asposewordscloud/models/requests/insert_table_request.py b/asposewordscloud/models/requests/insert_table_request.py new file mode 100644 index 00000000..a0e3366f --- /dev/null +++ b/asposewordscloud/models/requests/insert_table_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class InsertTableRequest(object): + """ + Request model for insert_table operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param table Table parameters/ + :param node_path Path to node, which contains tables. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, table=None, node_path=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.table = table + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/insert_table_row_request.py b/asposewordscloud/models/requests/insert_table_row_request.py new file mode 100644 index 00000000..12c75ec2 --- /dev/null +++ b/asposewordscloud/models/requests/insert_table_row_request.py @@ -0,0 +1,54 @@ +l +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class InsertTableRowRequest(object): + """ + Request model for insert_table_row operation. + Initializes a new instance. + :param name The document name. + :param table_path Path to table. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param row Table row parameters/ + """ + + def __init__(self, name, table_path, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, row=None): + self.name = name + self.table_path = table_path + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.row = ro \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_append_document_request.py b/asposewordscloud/models/requests/post_append_document_request.py new file mode 100644 index 00000000..51c6b86b --- /dev/null +++ b/asposewordscloud/models/requests/post_append_document_request.py @@ -0,0 +1,52 @@ +w +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostAppendDocumentRequest(object): + """ + Request model for post_append_document operation. + Initializes a new instance. + :param name Original document name. + :param document_list with a list of documents to append. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, document_list, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.document_list = document_list + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_change_document_protection_request.py b/asposewordscloud/models/requests/post_change_document_protection_request.py new file mode 100644 index 00000000..dc210a4e --- /dev/null +++ b/asposewordscloud/models/requests/post_change_document_protection_request.py @@ -0,0 +1,48 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostChangeDocumentProtectionRequest(object): + """ + Request model for post_change_document_protection operation. + Initializes a new instance. + :param name The document name. + :param protection_request with protection settings. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, protection_request, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.protection_request = protection_request + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_comment_request.py b/asposewordscloud/models/requests/post_comment_request.py new file mode 100644 index 00000000..9ec3c02e --- /dev/null +++ b/asposewordscloud/models/requests/post_comment_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostCommentRequest(object): + """ + Request model for post_comment operation. + Initializes a new instance. + :param name The document name. + :param comment_index Comment index + :param comment Comment data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, comment_index, comment, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.comment_index = comment_index + self.comment = comment + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_compare_document_request.py b/asposewordscloud/models/requests/post_compare_document_request.py new file mode 100644 index 00000000..7df35cf7 --- /dev/null +++ b/asposewordscloud/models/requests/post_compare_document_request.py @@ -0,0 +1,48 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostCompareDocumentRequest(object): + """ + Request model for post_compare_document operation. + Initializes a new instance. + :param name Original document name. + :param compare_data with a document to compare. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, compare_data, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.compare_data = compare_data + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_document_execute_mail_merge_request.py b/asposewordscloud/models/requests/post_document_execute_mail_merge_request.py new file mode 100644 index 00000000..3f50aef7 --- /dev/null +++ b/asposewordscloud/models/requests/post_document_execute_mail_merge_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostDocumentExecuteMailMergeRequest(object): + """ + Request model for post_document_execute_mail_merge operation. + Initializes a new instance. + :param name The document name. + :param data Mail merge data + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param with_regions With regions flag. + :param mail_merge_data_file Mail merge data. + :param cleanup Clean up options. + :param use_whole_paragraph_as_region Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. + """ + + def __init__(self, name, data=None, folder=None, storage=None, load_encoding=None, password=None, with_regions=None, mail_merge_data_file=None, cleanup=None, use_whole_paragraph_as_region=None, dest_file_name=None): + self.name = name + self.data = data + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.with_regions = with_regions + self.mail_merge_data_file = mail_merge_data_file + self.cleanup = cleanup + self.use_whole_paragraph_as_region = use_whole_paragraph_as_region + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_document_paragraph_run_font_request.py b/asposewordscloud/models/requests/post_document_paragraph_run_font_request.py new file mode 100644 index 00000000..aa83a66b --- /dev/null +++ b/asposewordscloud/models/requests/post_document_paragraph_run_font_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostDocumentParagraphRunFontRequest(object): + """ + Request model for post_document_paragraph_run_font operation. + Initializes a new instance. + :param name The document name. + :param font_dto Font dto object + :param paragraph_path Path to parent paragraph. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, font_dto, paragraph_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.font_dto = font_dto + self.paragraph_path = paragraph_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_document_save_as_request.py b/asposewordscloud/models/requests/post_document_save_as_request.py new file mode 100644 index 00000000..8d714be8 --- /dev/null +++ b/asposewordscloud/models/requests/post_document_save_as_request.py @@ -0,0 +1,50 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostDocumentSaveAsRequest(object): + """ + Request model for post_document_save_as operation. + Initializes a new instance. + :param name The document name. + :param save_options_data Save options. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, save_options_data, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, fonts_location=None): + self.name = name + self.save_options_data = save_options_data + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_drawing_object_request.py b/asposewordscloud/models/requests/post_drawing_object_request.py new file mode 100644 index 00000000..5b0957bb --- /dev/null +++ b/asposewordscloud/models/requests/post_drawing_object_request.py @@ -0,0 +1,58 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostDrawingObjectRequest(object): + """ + Request model for post_drawing_object operation. + Initializes a new instance. + :param name The document name. + :param drawing_object Drawing object parameters + :param image_file File with image + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, drawing_object, image_file, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.drawing_object = drawing_object + self.image_file = image_file + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_execute_template_request.py b/asposewordscloud/models/requests/post_execute_template_request.py new file mode 100644 index 00000000..b8d996c3 --- /dev/null +++ b/asposewordscloud/models/requests/post_execute_template_request.py @@ -0,0 +1,54 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostExecuteTemplateRequest(object): + """ + Request model for post_execute_template operation. + Initializes a new instance. + :param name The template document name. + :param data Mail merge data + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param cleanup Clean up options. + :param use_whole_paragraph_as_region Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. + :param with_regions Merge with regions or not. True by default + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. + """ + + def __init__(self, name, data, folder=None, storage=None, load_encoding=None, password=None, cleanup=None, use_whole_paragraph_as_region=None, with_regions=None, dest_file_name=None): + self.name = name + self.data = data + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.cleanup = cleanup + self.use_whole_paragraph_as_region = use_whole_paragraph_as_region + self.with_regions = with_regions + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_field_request.py b/asposewordscloud/models/requests/post_field_request.py new file mode 100644 index 00000000..601d3ece --- /dev/null +++ b/asposewordscloud/models/requests/post_field_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostFieldRequest(object): + """ + Request model for post_field operation. + Initializes a new instance. + :param name The document name. + :param field Field data. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of fields. + """ + + def __init__(self, name, field, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.field = field + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_footnote_request.py b/asposewordscloud/models/requests/post_footnote_request.py new file mode 100644 index 00000000..29dc4199 --- /dev/null +++ b/asposewordscloud/models/requests/post_footnote_request.py @@ -0,0 +1,56 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostFootnoteRequest(object): + """ + Request model for post_footnote operation. + Initializes a new instance. + :param name The document name. + :param footnote_dto Footnote data. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of footnotes. + """ + + def __init__(self, name, footnote_dto, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.footnote_dto = footnote_dto + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_form_field_request.py b/asposewordscloud/models/requests/post_form_field_request.py new file mode 100644 index 00000000..b534ffb4 --- /dev/null +++ b/asposewordscloud/models/requests/post_form_field_request.py @@ -0,0 +1,56 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostFormFieldRequest(object): + """ + Request model for post_form_field operation. + Initializes a new instance. + :param name The document name. + :param form_field From field data. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node that contains collection of formfields. + """ + + def __init__(self, name, form_field, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.form_field = form_field + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_insert_document_watermark_image_request.py b/asposewordscloud/models/requests/post_insert_document_watermark_image_request.py new file mode 100644 index 00000000..8731eb6b --- /dev/null +++ b/asposewordscloud/models/requests/post_insert_document_watermark_image_request.py @@ -0,0 +1,56 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostInsertDocumentWatermarkImageRequest(object): + """ + Request model for post_insert_document_watermark_image operation. + Initializes a new instance. + :param name The document name. + :param image_file File with image + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param rotation_angle The watermark rotation angle. + :param image The image file server full name. If the name is empty the image is expected in request content. + """ + + def __init__(self, name, image_file=None, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, rotation_angle=None, image=None): + self.name = name + self.image_file = image_file + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.rotation_angle = rotation_angle + self.image = imag \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_insert_document_watermark_text_request.py b/asposewordscloud/models/requests/post_insert_document_watermark_text_request.py new file mode 100644 index 00000000..8a2089d4 --- /dev/null +++ b/asposewordscloud/models/requests/post_insert_document_watermark_text_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostInsertDocumentWatermarkTextRequest(object): + """ + Request model for post_insert_document_watermark_text operation. + Initializes a new instance. + :param name The document name. + :param watermark_text with the watermark data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, watermark_text, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.watermark_text = watermark_text + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_insert_page_numbers_request.py b/asposewordscloud/models/requests/post_insert_page_numbers_request.py new file mode 100644 index 00000000..05423f1e --- /dev/null +++ b/asposewordscloud/models/requests/post_insert_page_numbers_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostInsertPageNumbersRequest(object): + """ + Request model for post_insert_page_numbers operation. + Initializes a new instance. + :param name A document name. + :param page_number with the page numbers settings. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, page_number, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.page_number = page_number + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_load_web_document_request.py b/asposewordscloud/models/requests/post_load_web_document_request.py new file mode 100644 index 00000000..7c4bf64c --- /dev/null +++ b/asposewordscloud/models/requests/post_load_web_document_request.py @@ -0,0 +1,38 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostLoadWebDocumentRequest(object): + """ + Request model for post_load_web_document operation. + Initializes a new instance. + :param data Parameters of loading. + :param storage File storage, which have to be used. + """ + + def __init__(self, data, storage=None): + self.data = data + self.storage = storag \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_replace_text_request.py b/asposewordscloud/models/requests/post_replace_text_request.py new file mode 100644 index 00000000..117a03e9 --- /dev/null +++ b/asposewordscloud/models/requests/post_replace_text_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostReplaceTextRequest(object): + """ + Request model for post_replace_text operation. + Initializes a new instance. + :param name The document name. + :param replace_text with the replace operation settings. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, replace_text, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.replace_text = replace_text + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_run_request.py b/asposewordscloud/models/requests/post_run_request.py new file mode 100644 index 00000000..5ecba14b --- /dev/null +++ b/asposewordscloud/models/requests/post_run_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostRunRequest(object): + """ + Request model for post_run operation. + Initializes a new instance. + :param name The document name. + :param run Run data. + :param paragraph_path Path to parent paragraph. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, run, paragraph_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.run = run + self.paragraph_path = paragraph_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_split_document_request.py b/asposewordscloud/models/requests/post_split_document_request.py new file mode 100644 index 00000000..33bbed45 --- /dev/null +++ b/asposewordscloud/models/requests/post_split_document_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostSplitDocumentRequest(object): + """ + Request model for post_split_document operation. + Initializes a new instance. + :param name Original document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param format Format to split. + :param _from Start page. + :param to End page. + :param zip_output ZipOutput or not. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, format=None, _from=None, to=None, zip_output=None, fonts_location=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.format = format + self._from = _from + self.to = to + self.zip_output = zip_output + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_update_document_bookmark_request.py b/asposewordscloud/models/requests/post_update_document_bookmark_request.py new file mode 100644 index 00000000..efb1cc8c --- /dev/null +++ b/asposewordscloud/models/requests/post_update_document_bookmark_request.py @@ -0,0 +1,54 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostUpdateDocumentBookmarkRequest(object): + """ + Request model for post_update_document_bookmark operation. + Initializes a new instance. + :param name The document name. + :param bookmark_data with new bookmark data. + :param bookmark_name The bookmark name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, bookmark_data, bookmark_name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.bookmark_data = bookmark_data + self.bookmark_name = bookmark_name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/post_update_document_fields_request.py b/asposewordscloud/models/requests/post_update_document_fields_request.py new file mode 100644 index 00000000..1b672fc9 --- /dev/null +++ b/asposewordscloud/models/requests/post_update_document_fields_request.py @@ -0,0 +1,46 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PostUpdateDocumentFieldsRequest(object): + """ + Request model for post_update_document_fields operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_comment_request.py b/asposewordscloud/models/requests/put_comment_request.py new file mode 100644 index 00000000..3e76b1a4 --- /dev/null +++ b/asposewordscloud/models/requests/put_comment_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutCommentRequest(object): + """ + Request model for put_comment operation. + Initializes a new instance. + :param name The document name. + :param comment Comment data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, comment, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.comment = comment + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_convert_document_request.py b/asposewordscloud/models/requests/put_convert_document_request.py new file mode 100644 index 00000000..8b871c49 --- /dev/null +++ b/asposewordscloud/models/requests/put_convert_document_request.py @@ -0,0 +1,46 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutConvertDocumentRequest(object): + """ + Request model for put_convert_document operation. + Initializes a new instance. + :param document Converting document + :param format Format to convert. + :param storage File storage, which have to be used. + :param out_path Path for saving operation result to the local storage. + :param document_file_name This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"sourceFilename\" will be used instead. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, document, format, storage=None, out_path=None, document_file_name=None, fonts_location=None): + self.document = document + self.format = format + self.storage = storage + self.out_path = out_path + self.document_file_name = document_file_name + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_create_document_request.py b/asposewordscloud/models/requests/put_create_document_request.py new file mode 100644 index 00000000..8b8cc34d --- /dev/null +++ b/asposewordscloud/models/requests/put_create_document_request.py @@ -0,0 +1,40 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutCreateDocumentRequest(object): + """ + Request model for put_create_document operation. + Initializes a new instance. + :param storage File storage, which have to be used. + :param file_name The file name. + :param folder The document folder. + """ + + def __init__(self, storage=None, file_name=None, folder=None): + self.storage = storage + self.file_name = file_name + self.folder = folde \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_document_field_names_request.py b/asposewordscloud/models/requests/put_document_field_names_request.py new file mode 100644 index 00000000..9177da97 --- /dev/null +++ b/asposewordscloud/models/requests/put_document_field_names_request.py @@ -0,0 +1,38 @@ +r +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutDocumentFieldNamesRequest(object): + """ + Request model for put_document_field_names operation. + Initializes a new instance. + :param template File with template + :param use_non_merge_fields Use non merge fields or not. + """ + + def __init__(self, template, use_non_merge_fields=None): + self.template = template + self.use_non_merge_fields = use_non_merge_field \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_document_save_as_tiff_request.py b/asposewordscloud/models/requests/put_document_save_as_tiff_request.py new file mode 100644 index 00000000..8c9a98fb --- /dev/null +++ b/asposewordscloud/models/requests/put_document_save_as_tiff_request.py @@ -0,0 +1,86 @@ +s +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutDocumentSaveAsTiffRequest(object): + """ + Request model for put_document_save_as_tiff operation. + Initializes a new instance. + :param name The document name. + :param save_options Tiff save options. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param result_file The resulting file name. + :param use_anti_aliasing Use antialiasing flag. + :param use_high_quality_rendering Use high quality flag. + :param image_brightness Brightness for the generated images. + :param image_color_mode Color mode for the generated images. + :param image_contrast The contrast for the generated images. + :param numeral_format The images numeral format. + :param page_count Number of pages to render. + :param page_index Page index to start rendering. + :param paper_color Background image color. + :param pixel_format The pixel format of generated images. + :param resolution The resolution of generated images. + :param scale Zoom factor for generated images. + :param tiff_compression The compression tipe. + :param dml_rendering_mode Optional, default is Fallback. + :param dml_effects_rendering_mode Optional, default is Simplified. + :param tiff_binarization_method Optional, Tiff binarization method, possible values are: FloydSteinbergDithering, Threshold. + :param zip_output Optional. A value determining zip output or not. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, save_options, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, result_file=None, use_anti_aliasing=None, use_high_quality_rendering=None, image_brightness=None, image_color_mode=None, image_contrast=None, numeral_format=None, page_count=None, page_index=None, paper_color=None, pixel_format=None, resolution=None, scale=None, tiff_compression=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, tiff_binarization_method=None, zip_output=None, fonts_location=None): + self.name = name + self.save_options = save_options + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.result_file = result_file + self.use_anti_aliasing = use_anti_aliasing + self.use_high_quality_rendering = use_high_quality_rendering + self.image_brightness = image_brightness + self.image_color_mode = image_color_mode + self.image_contrast = image_contrast + self.numeral_format = numeral_format + self.page_count = page_count + self.page_index = page_index + self.paper_color = paper_color + self.pixel_format = pixel_format + self.resolution = resolution + self.scale = scale + self.tiff_compression = tiff_compression + self.dml_rendering_mode = dml_rendering_mode + self.dml_effects_rendering_mode = dml_effects_rendering_mode + self.tiff_binarization_method = tiff_binarization_method + self.zip_output = zip_output + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_drawing_object_request.py b/asposewordscloud/models/requests/put_drawing_object_request.py new file mode 100644 index 00000000..379a8ad1 --- /dev/null +++ b/asposewordscloud/models/requests/put_drawing_object_request.py @@ -0,0 +1,56 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutDrawingObjectRequest(object): + """ + Request model for put_drawing_object operation. + Initializes a new instance. + :param name The document name. + :param drawing_object Drawing object parameters + :param image_file File with image + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of drawing objects. + """ + + def __init__(self, name, drawing_object, image_file, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.drawing_object = drawing_object + self.image_file = image_file + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_execute_mail_merge_online_request.py b/asposewordscloud/models/requests/put_execute_mail_merge_online_request.py new file mode 100644 index 00000000..317b716e --- /dev/null +++ b/asposewordscloud/models/requests/put_execute_mail_merge_online_request.py @@ -0,0 +1,44 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutExecuteMailMergeOnlineRequest(object): + """ + Request model for put_execute_mail_merge_online operation. + Initializes a new instance. + :param template File with template + :param data File with mailmerge data + :param with_regions With regions flag. + :param cleanup Clean up options. + :param document_file_name This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. + """ + + def __init__(self, template, data, with_regions=None, cleanup=None, document_file_name=None): + self.template = template + self.data = data + self.with_regions = with_regions + self.cleanup = cleanup + self.document_file_name = document_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_execute_template_online_request.py b/asposewordscloud/models/requests/put_execute_template_online_request.py new file mode 100644 index 00000000..84b09ef2 --- /dev/null +++ b/asposewordscloud/models/requests/put_execute_template_online_request.py @@ -0,0 +1,46 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutExecuteTemplateOnlineRequest(object): + """ + Request model for put_execute_template_online operation. + Initializes a new instance. + :param template File with template + :param data File with mailmerge data + :param cleanup Clean up options. + :param use_whole_paragraph_as_region Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. + :param with_regions Merge with regions or not. True by default + :param document_file_name This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. Note: if withRegions == true executeTemplate updates fields only inside regions + """ + + def __init__(self, template, data, cleanup=None, use_whole_paragraph_as_region=None, with_regions=None, document_file_name=None): + self.template = template + self.data = data + self.cleanup = cleanup + self.use_whole_paragraph_as_region = use_whole_paragraph_as_region + self.with_regions = with_regions + self.document_file_name = document_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_field_request.py b/asposewordscloud/models/requests/put_field_request.py new file mode 100644 index 00000000..fd98df49 --- /dev/null +++ b/asposewordscloud/models/requests/put_field_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutFieldRequest(object): + """ + Request model for put_field operation. + Initializes a new instance. + :param name The document name. + :param field Field data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of fields. + :param insert_before_node Field will be inserted before node with id=\"nodeId\". + """ + + def __init__(self, name, field, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None, insert_before_node=None): + self.name = name + self.field = field + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_path + self.insert_before_node = insert_before_nod \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_footnote_request.py b/asposewordscloud/models/requests/put_footnote_request.py new file mode 100644 index 00000000..227b1dce --- /dev/null +++ b/asposewordscloud/models/requests/put_footnote_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutFootnoteRequest(object): + """ + Request model for put_footnote operation. + Initializes a new instance. + :param name The document name. + :param footnote_dto Footnote data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node, which contains collection of footnotes. + """ + + def __init__(self, name, footnote_dto, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None): + self.name = name + self.footnote_dto = footnote_dto + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_form_field_request.py b/asposewordscloud/models/requests/put_form_field_request.py new file mode 100644 index 00000000..3aede9e4 --- /dev/null +++ b/asposewordscloud/models/requests/put_form_field_request.py @@ -0,0 +1,56 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutFormFieldRequest(object): + """ + Request model for put_form_field operation. + Initializes a new instance. + :param name The document name. + :param form_field From field data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node that contains collection of formfields. + :param insert_before_node Form field will be inserted before node with index. + """ + + def __init__(self, name, form_field, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None, insert_before_node=None): + self.name = name + self.form_field = form_field + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_path + self.insert_before_node = insert_before_nod \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_header_footer_request.py b/asposewordscloud/models/requests/put_header_footer_request.py new file mode 100644 index 00000000..50f5a740 --- /dev/null +++ b/asposewordscloud/models/requests/put_header_footer_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutHeaderFooterRequest(object): + """ + Request model for put_header_footer operation. + Initializes a new instance. + :param name The document name. + :param header_footer_type Type of header/footer. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param section_path Path to parent section. + """ + + def __init__(self, name, header_footer_type, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, section_path=None): + self.name = name + self.header_footer_type = header_footer_type + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.section_path = section_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_paragraph_request.py b/asposewordscloud/models/requests/put_paragraph_request.py new file mode 100644 index 00000000..f13f7770 --- /dev/null +++ b/asposewordscloud/models/requests/put_paragraph_request.py @@ -0,0 +1,56 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutParagraphRequest(object): + """ + Request model for put_paragraph operation. + Initializes a new instance. + :param name The document name. + :param paragraph Paragraph data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param node_path Path to node which contains paragraphs. + :param insert_before_node Paragraph will be inserted before node with index. + """ + + def __init__(self, name, paragraph, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, node_path=None, insert_before_node=None): + self.name = name + self.paragraph = paragraph + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.node_path = node_path + self.insert_before_node = insert_before_nod \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_protect_document_request.py b/asposewordscloud/models/requests/put_protect_document_request.py new file mode 100644 index 00000000..6845fb6c --- /dev/null +++ b/asposewordscloud/models/requests/put_protect_document_request.py @@ -0,0 +1,48 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutProtectDocumentRequest(object): + """ + Request model for put_protect_document operation. + Initializes a new instance. + :param name The document name. + :param protection_request with protection settings. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, protection_request, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.protection_request = protection_request + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/put_run_request.py b/asposewordscloud/models/requests/put_run_request.py new file mode 100644 index 00000000..ca106032 --- /dev/null +++ b/asposewordscloud/models/requests/put_run_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class PutRunRequest(object): + """ + Request model for put_run operation. + Initializes a new instance. + :param name The document name. + :param paragraph_path Path to parent paragraph. + :param run Run data. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param insert_before_node Paragraph will be inserted before node with index. + """ + + def __init__(self, name, paragraph_path, run, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, insert_before_node=None): + self.name = name + self.paragraph_path = paragraph_path + self.run = run + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.insert_before_node = insert_before_nod \ No newline at end of file diff --git a/asposewordscloud/models/requests/reject_all_revisions_request.py b/asposewordscloud/models/requests/reject_all_revisions_request.py new file mode 100644 index 00000000..0ebc5806 --- /dev/null +++ b/asposewordscloud/models/requests/reject_all_revisions_request.py @@ -0,0 +1,46 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class RejectAllRevisionsRequest(object): + """ + Request model for reject_all_revisions operation. + Initializes a new instance. + :param name The document name. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + """ + + def __init__(self, name, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None): + self.name = name + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_nam \ No newline at end of file diff --git a/asposewordscloud/models/requests/render_drawing_object_request.py b/asposewordscloud/models/requests/render_drawing_object_request.py new file mode 100644 index 00000000..ff5033b5 --- /dev/null +++ b/asposewordscloud/models/requests/render_drawing_object_request.py @@ -0,0 +1,52 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class RenderDrawingObjectRequest(object): + """ + Request model for render_drawing_object operation. + Initializes a new instance. + :param name The file name. + :param format The destination format. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains drawing objects. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, format, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None, fonts_location=None): + self.name = name + self.format = format + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_path + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/render_math_object_request.py b/asposewordscloud/models/requests/render_math_object_request.py new file mode 100644 index 00000000..254e6b9d --- /dev/null +++ b/asposewordscloud/models/requests/render_math_object_request.py @@ -0,0 +1,52 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class RenderMathObjectRequest(object): + """ + Request model for render_math_object operation. + Initializes a new instance. + :param name The file name. + :param format The destination format. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains office math objects. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, format, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None, fonts_location=None): + self.name = name + self.format = format + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_path + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/render_page_request.py b/asposewordscloud/models/requests/render_page_request.py new file mode 100644 index 00000000..d2345b34 --- /dev/null +++ b/asposewordscloud/models/requests/render_page_request.py @@ -0,0 +1,50 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class RenderPageRequest(object): + """ + Request model for render_page operation. + Initializes a new instance. + :param name The file name. + :param page_index Comment index + :param format The destination format. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, page_index, format, folder=None, storage=None, load_encoding=None, password=None, fonts_location=None): + self.name = name + self.page_index = page_index + self.format = format + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/render_paragraph_request.py b/asposewordscloud/models/requests/render_paragraph_request.py new file mode 100644 index 00000000..163563a9 --- /dev/null +++ b/asposewordscloud/models/requests/render_paragraph_request.py @@ -0,0 +1,52 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class RenderParagraphRequest(object): + """ + Request model for render_paragraph operation. + Initializes a new instance. + :param name The file name. + :param format The destination format. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains paragraphs. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, format, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None, fonts_location=None): + self.name = name + self.format = format + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_path + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/render_table_request.py b/asposewordscloud/models/requests/render_table_request.py new file mode 100644 index 00000000..92d81080 --- /dev/null +++ b/asposewordscloud/models/requests/render_table_request.py @@ -0,0 +1,52 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class RenderTableRequest(object): + """ + Request model for render_table operation. + Initializes a new instance. + :param name The file name. + :param format The destination format. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param node_path Path to node, which contains tables. + :param fonts_location Folder in filestorage with custom fonts. + """ + + def __init__(self, name, format, index, folder=None, storage=None, load_encoding=None, password=None, node_path=None, fonts_location=None): + self.name = name + self.format = format + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.node_path = node_path + self.fonts_location = fonts_locatio \ No newline at end of file diff --git a/asposewordscloud/models/requests/reset_cache_request.py b/asposewordscloud/models/requests/reset_cache_request.py new file mode 100644 index 00000000..b6a15303 --- /dev/null +++ b/asposewordscloud/models/requests/reset_cache_request.py @@ -0,0 +1,35 @@ +n +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class ResetCacheRequest(object): + """ + Request model for reset_cache operation. + Initializes a new instance. + """ + + def __init__(self): + pas \ No newline at end of file diff --git a/asposewordscloud/models/requests/search_request.py b/asposewordscloud/models/requests/search_request.py new file mode 100644 index 00000000..1b4a50ae --- /dev/null +++ b/asposewordscloud/models/requests/search_request.py @@ -0,0 +1,46 @@ +s +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class SearchRequest(object): + """ + Request model for search operation. + Initializes a new instance. + :param name The document name. + :param pattern The regular expression used to find matches. + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + """ + + def __init__(self, name, pattern, folder=None, storage=None, load_encoding=None, password=None): + self.name = name + self.pattern = pattern + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = passwor \ No newline at end of file diff --git a/asposewordscloud/models/requests/update_border_request.py b/asposewordscloud/models/requests/update_border_request.py new file mode 100644 index 00000000..83e2d87b --- /dev/null +++ b/asposewordscloud/models/requests/update_border_request.py @@ -0,0 +1,56 @@ +d +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class UpdateBorderRequest(object): + """ + Request model for update_border operation. + Initializes a new instance. + :param name The document name. + :param border_properties Border properties + :param node_path Path to node with border(node should be cell or row). + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, border_properties, node_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.border_properties = border_properties + self.node_path = node_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/update_section_page_setup_request.py b/asposewordscloud/models/requests/update_section_page_setup_request.py new file mode 100644 index 00000000..3e4564a1 --- /dev/null +++ b/asposewordscloud/models/requests/update_section_page_setup_request.py @@ -0,0 +1,54 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class UpdateSectionPageSetupRequest(object): + """ + Request model for update_section_page_setup operation. + Initializes a new instance. + :param name The document name. + :param section_index Section index + :param page_setup Page setup properties dto + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + """ + + def __init__(self, name, section_index, page_setup, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None): + self.name = name + self.section_index = section_index + self.page_setup = page_setup + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_tim \ No newline at end of file diff --git a/asposewordscloud/models/requests/update_table_cell_format_request.py b/asposewordscloud/models/requests/update_table_cell_format_request.py new file mode 100644 index 00000000..8769245b --- /dev/null +++ b/asposewordscloud/models/requests/update_table_cell_format_request.py @@ -0,0 +1,56 @@ +e +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class UpdateTableCellFormatRequest(object): + """ + Request model for update_table_cell_format operation. + Initializes a new instance. + :param name The document name. + :param table_row_path Path to table row. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param format The properties. + """ + + def __init__(self, name, table_row_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, format=None): + self.name = name + self.table_row_path = table_row_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.format = forma \ No newline at end of file diff --git a/asposewordscloud/models/requests/update_table_properties_request.py b/asposewordscloud/models/requests/update_table_properties_request.py new file mode 100644 index 00000000..7b2cd044 --- /dev/null +++ b/asposewordscloud/models/requests/update_table_properties_request.py @@ -0,0 +1,56 @@ +t +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class UpdateTablePropertiesRequest(object): + """ + Request model for update_table_properties operation. + Initializes a new instance. + :param name The document name. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param properties The properties. + :param node_path Path to node, which contains tables. + """ + + def __init__(self, name, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, properties=None, node_path=None): + self.name = name + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.properties = properties + self.node_path = node_pat \ No newline at end of file diff --git a/asposewordscloud/models/requests/update_table_row_format_request.py b/asposewordscloud/models/requests/update_table_row_format_request.py new file mode 100644 index 00000000..88948a87 --- /dev/null +++ b/asposewordscloud/models/requests/update_table_row_format_request.py @@ -0,0 +1,56 @@ +h +# -------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------- + + +class UpdateTableRowFormatRequest(object): + """ + Request model for update_table_row_format operation. + Initializes a new instance. + :param name The document name. + :param table_path Path to table. + :param index Object's index + :param folder Original document folder. + :param storage File storage, which have to be used. + :param load_encoding Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. + :param password Password for opening an encrypted document. + :param dest_file_name Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. + :param revision_author Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. + :param revision_date_time The date and time to use for revisions. + :param format Table row format. + """ + + def __init__(self, name, table_path, index, folder=None, storage=None, load_encoding=None, password=None, dest_file_name=None, revision_author=None, revision_date_time=None, format=None): + self.name = name + self.table_path = table_path + self.index = index + self.folder = folder + self.storage = storage + self.load_encoding = load_encoding + self.password = password + self.dest_file_name = dest_file_name + self.revision_author = revision_author + self.revision_date_time = revision_date_time + self.format = format diff --git a/asposewordscloud/models/revisions_modification_response.py b/asposewordscloud/models/revisions_modification_response.py new file mode 100644 index 00000000..284fb743 --- /dev/null +++ b/asposewordscloud/models/revisions_modification_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class RevisionsModificationResponse(object): + """response of the modification operations for the revisions collection (now these are acceptAll and rejectAll) + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'result': 'ModificationOperationResult' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'result': 'Result' + } + + def __init__(self, code=None, status=None, result=None): # noqa: E501 + """RevisionsModificationResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._result = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if result is not None: + self.result = result + + @property + def code(self): + """Gets the code of this RevisionsModificationResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this RevisionsModificationResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this RevisionsModificationResponse. + + Response status code. # noqa: E501 + + :param code: The code of this RevisionsModificationResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this RevisionsModificationResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this RevisionsModificationResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this RevisionsModificationResponse. + + Response status. # noqa: E501 + + :param status: The status of this RevisionsModificationResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def result(self): + """Gets the result of this RevisionsModificationResponse. # noqa: E501 + + result of the modification operations for the revisions collection # noqa: E501 + + :return: The result of this RevisionsModificationResponse. # noqa: E501 + :rtype: ModificationOperationResult + """ + return self._result + + @result.setter + def result(self, result): + """Sets the result of this RevisionsModificationResponse. + + result of the modification operations for the revisions collection # noqa: E501 + + :param result: The result of this RevisionsModificationResponse. # noqa: E501 + :type: ModificationOperationResult + """ + self._result = result + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, RevisionsModificationResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/rtf_save_options_data.py b/asposewordscloud/models/rtf_save_options_data.py new file mode 100644 index 00000000..62d752c8 --- /dev/null +++ b/asposewordscloud/models/rtf_save_options_data.py @@ -0,0 +1,408 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class RtfSaveOptionsData(object): + """container class for rtf save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'export_compact_size': 'bool', + 'export_images_for_old_readers': 'bool', + 'pretty_format': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'export_compact_size': 'ExportCompactSize', + 'export_images_for_old_readers': 'ExportImagesForOldReaders', + 'pretty_format': 'PrettyFormat' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, export_compact_size=None, export_images_for_old_readers=None, pretty_format=None): # noqa: E501 + """RtfSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._export_compact_size = None + self._export_images_for_old_readers = None + self._pretty_format = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if export_compact_size is not None: + self.export_compact_size = export_compact_size + if export_images_for_old_readers is not None: + self.export_images_for_old_readers = export_images_for_old_readers + if pretty_format is not None: + self.pretty_format = pretty_format + + @property + def color_mode(self): + """Gets the color_mode of this RtfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this RtfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this RtfSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this RtfSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this RtfSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this RtfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this RtfSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this RtfSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this RtfSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this RtfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this RtfSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this RtfSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this RtfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this RtfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this RtfSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this RtfSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this RtfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this RtfSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this RtfSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this RtfSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this RtfSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this RtfSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this RtfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this RtfSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this RtfSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this RtfSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this RtfSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this RtfSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def export_compact_size(self): + """Gets the export_compact_size of this RtfSaveOptionsData. # noqa: E501 + + Allows to make output RTF documents smaller in size, but if they contain RTL (right-to-left) text, it will not be displayed correctly # noqa: E501 + + :return: The export_compact_size of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_compact_size + + @export_compact_size.setter + def export_compact_size(self, export_compact_size): + """Sets the export_compact_size of this RtfSaveOptionsData. + + Allows to make output RTF documents smaller in size, but if they contain RTL (right-to-left) text, it will not be displayed correctly # noqa: E501 + + :param export_compact_size: The export_compact_size of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_compact_size = export_compact_size + @property + def export_images_for_old_readers(self): + """Gets the export_images_for_old_readers of this RtfSaveOptionsData. # noqa: E501 + + Specifies whether the keywords for \"old readers\" are written to RTF or not # noqa: E501 + + :return: The export_images_for_old_readers of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_images_for_old_readers + + @export_images_for_old_readers.setter + def export_images_for_old_readers(self, export_images_for_old_readers): + """Sets the export_images_for_old_readers of this RtfSaveOptionsData. + + Specifies whether the keywords for \"old readers\" are written to RTF or not # noqa: E501 + + :param export_images_for_old_readers: The export_images_for_old_readers of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_images_for_old_readers = export_images_for_old_readers + @property + def pretty_format(self): + """Gets the pretty_format of this RtfSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this RtfSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this RtfSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this RtfSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, RtfSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/run.py b/asposewordscloud/models/run.py new file mode 100644 index 00000000..8c2b98e2 --- /dev/null +++ b/asposewordscloud/models/run.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Run(object): + """Run element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'text': 'Text' + } + + def __init__(self, link=None, node_id=None, text=None): # noqa: E501 + """Run - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this Run. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Run. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Run. + + Link to the document. # noqa: E501 + + :param link: The link of this Run. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this Run. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this Run. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this Run. + + Node id # noqa: E501 + + :param node_id: The node_id of this Run. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def text(self): + """Gets the text of this Run. # noqa: E501 + + Run's text # noqa: E501 + + :return: The text of this Run. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this Run. + + Run's text # noqa: E501 + + :param text: The text of this Run. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Run): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/run_link.py b/asposewordscloud/models/run_link.py new file mode 100644 index 00000000..273f1d5a --- /dev/null +++ b/asposewordscloud/models/run_link.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class RunLink(object): + """Run link element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'text': 'Text' + } + + def __init__(self, link=None, node_id=None, text=None): # noqa: E501 + """RunLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this RunLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this RunLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this RunLink. + + Link to the document. # noqa: E501 + + :param link: The link of this RunLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this RunLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this RunLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this RunLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this RunLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def text(self): + """Gets the text of this RunLink. # noqa: E501 + + Run's text # noqa: E501 + + :return: The text of this RunLink. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this RunLink. + + Run's text # noqa: E501 + + :param text: The text of this RunLink. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, RunLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/run_response.py b/asposewordscloud/models/run_response.py new file mode 100644 index 00000000..bf9ee9d0 --- /dev/null +++ b/asposewordscloud/models/run_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class RunResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/paragraphs/{0}/runs/{1} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'run': 'Run' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'run': 'Run' + } + + def __init__(self, code=None, status=None, run=None): # noqa: E501 + """RunResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._run = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if run is not None: + self.run = run + + @property + def code(self): + """Gets the code of this RunResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this RunResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this RunResponse. + + Response status code. # noqa: E501 + + :param code: The code of this RunResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this RunResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this RunResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this RunResponse. + + Response status. # noqa: E501 + + :param status: The status of this RunResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def run(self): + """Gets the run of this RunResponse. # noqa: E501 + + Run # noqa: E501 + + :return: The run of this RunResponse. # noqa: E501 + :rtype: Run + """ + return self._run + + @run.setter + def run(self, run): + """Sets the run of this RunResponse. + + Run # noqa: E501 + + :param run: The run of this RunResponse. # noqa: E501 + :type: Run + """ + self._run = run + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, RunResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/runs.py b/asposewordscloud/models/runs.py new file mode 100644 index 00000000..f63b3bdd --- /dev/null +++ b/asposewordscloud/models/runs.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Runs(object): + """Represents DTO for collection of runs. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[Run]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """Runs - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this Runs. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Runs. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Runs. + + Link to the document. # noqa: E501 + + :param link: The link of this Runs. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this Runs. # noqa: E501 + + Collection of fields # noqa: E501 + + :return: The list of this Runs. # noqa: E501 + :rtype: list[Run] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this Runs. + + Collection of fields # noqa: E501 + + :param list: The list of this Runs. # noqa: E501 + :type: list[Run] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Runs): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/runs_response.py b/asposewordscloud/models/runs_response.py new file mode 100644 index 00000000..85604b76 --- /dev/null +++ b/asposewordscloud/models/runs_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class RunsResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/{paragraphPath}/runs + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'runs': 'Runs' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'runs': 'Runs' + } + + def __init__(self, code=None, status=None, runs=None): # noqa: E501 + """RunsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._runs = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if runs is not None: + self.runs = runs + + @property + def code(self): + """Gets the code of this RunsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this RunsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this RunsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this RunsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this RunsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this RunsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this RunsResponse. + + Response status. # noqa: E501 + + :param status: The status of this RunsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def runs(self): + """Gets the runs of this RunsResponse. # noqa: E501 + + Collection of runs. # noqa: E501 + + :return: The runs of this RunsResponse. # noqa: E501 + :rtype: Runs + """ + return self._runs + + @runs.setter + def runs(self, runs): + """Sets the runs of this RunsResponse. + + Collection of runs. # noqa: E501 + + :param runs: The runs of this RunsResponse. # noqa: E501 + :type: Runs + """ + self._runs = runs + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, RunsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/save_options_data.py b/asposewordscloud/models/save_options_data.py new file mode 100644 index 00000000..d8c59d1d --- /dev/null +++ b/asposewordscloud/models/save_options_data.py @@ -0,0 +1,330 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SaveOptionsData(object): + """base container class for save options data + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None): # noqa: E501 + """SaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + + @property + def color_mode(self): + """Gets the color_mode of this SaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this SaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this SaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this SaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this SaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this SaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this SaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this SaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this SaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this SaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this SaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this SaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this SaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this SaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this SaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this SaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this SaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this SaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this SaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this SaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this SaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this SaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this SaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this SaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this SaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this SaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this SaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this SaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this SaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this SaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this SaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this SaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this SaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this SaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this SaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this SaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/save_response.py b/asposewordscloud/models/save_response.py new file mode 100644 index 00000000..9b901909 --- /dev/null +++ b/asposewordscloud/models/save_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SaveResponse(object): + """Save response. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'save_result': 'SaveResult' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'save_result': 'SaveResult' + } + + def __init__(self, code=None, status=None, save_result=None): # noqa: E501 + """SaveResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._save_result = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if save_result is not None: + self.save_result = save_result + + @property + def code(self): + """Gets the code of this SaveResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this SaveResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this SaveResponse. + + Response status code. # noqa: E501 + + :param code: The code of this SaveResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this SaveResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this SaveResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this SaveResponse. + + Response status. # noqa: E501 + + :param status: The status of this SaveResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def save_result(self): + """Gets the save_result of this SaveResponse. # noqa: E501 + + Save result. # noqa: E501 + + :return: The save_result of this SaveResponse. # noqa: E501 + :rtype: SaveResult + """ + return self._save_result + + @save_result.setter + def save_result(self, save_result): + """Sets the save_result of this SaveResponse. + + Save result. # noqa: E501 + + :param save_result: The save_result of this SaveResponse. # noqa: E501 + :type: SaveResult + """ + self._save_result = save_result + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SaveResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/save_result.py b/asposewordscloud/models/save_result.py new file mode 100644 index 00000000..4872a95c --- /dev/null +++ b/asposewordscloud/models/save_result.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SaveResult(object): + """Result of saving. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'source_document': 'FileLink', + 'dest_document': 'FileLink', + 'additional_items': 'list[FileLink]' + } + + attribute_map = { + 'source_document': 'SourceDocument', + 'dest_document': 'DestDocument', + 'additional_items': 'AdditionalItems' + } + + def __init__(self, source_document=None, dest_document=None, additional_items=None): # noqa: E501 + """SaveResult - a model defined in Swagger""" # noqa: E501 + + self._source_document = None + self._dest_document = None + self._additional_items = None + self.discriminator = None + + if source_document is not None: + self.source_document = source_document + if dest_document is not None: + self.dest_document = dest_document + if additional_items is not None: + self.additional_items = additional_items + + @property + def source_document(self): + """Gets the source_document of this SaveResult. # noqa: E501 + + Link to source document. # noqa: E501 + + :return: The source_document of this SaveResult. # noqa: E501 + :rtype: FileLink + """ + return self._source_document + + @source_document.setter + def source_document(self, source_document): + """Sets the source_document of this SaveResult. + + Link to source document. # noqa: E501 + + :param source_document: The source_document of this SaveResult. # noqa: E501 + :type: FileLink + """ + self._source_document = source_document + @property + def dest_document(self): + """Gets the dest_document of this SaveResult. # noqa: E501 + + Link to destination document. # noqa: E501 + + :return: The dest_document of this SaveResult. # noqa: E501 + :rtype: FileLink + """ + return self._dest_document + + @dest_document.setter + def dest_document(self, dest_document): + """Sets the dest_document of this SaveResult. + + Link to destination document. # noqa: E501 + + :param dest_document: The dest_document of this SaveResult. # noqa: E501 + :type: FileLink + """ + self._dest_document = dest_document + @property + def additional_items(self): + """Gets the additional_items of this SaveResult. # noqa: E501 + + Links to additional items (css, images etc). # noqa: E501 + + :return: The additional_items of this SaveResult. # noqa: E501 + :rtype: list[FileLink] + """ + return self._additional_items + + @additional_items.setter + def additional_items(self, additional_items): + """Sets the additional_items of this SaveResult. + + Links to additional items (css, images etc). # noqa: E501 + + :param additional_items: The additional_items of this SaveResult. # noqa: E501 + :type: list[FileLink] + """ + self._additional_items = additional_items + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SaveResult): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/search_response.py b/asposewordscloud/models/search_response.py new file mode 100644 index 00000000..d5a7eda5 --- /dev/null +++ b/asposewordscloud/models/search_response.py @@ -0,0 +1,202 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SearchResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/search + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'searching_pattern': 'str', + 'search_results': 'SearchResultsCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'searching_pattern': 'SearchingPattern', + 'search_results': 'SearchResults' + } + + def __init__(self, code=None, status=None, searching_pattern=None, search_results=None): # noqa: E501 + """SearchResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._searching_pattern = None + self._search_results = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if searching_pattern is not None: + self.searching_pattern = searching_pattern + if search_results is not None: + self.search_results = search_results + + @property + def code(self): + """Gets the code of this SearchResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this SearchResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this SearchResponse. + + Response status code. # noqa: E501 + + :param code: The code of this SearchResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this SearchResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this SearchResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this SearchResponse. + + Response status. # noqa: E501 + + :param status: The status of this SearchResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def searching_pattern(self): + """Gets the searching_pattern of this SearchResponse. # noqa: E501 + + A regular expression pattern used to find matches. # noqa: E501 + + :return: The searching_pattern of this SearchResponse. # noqa: E501 + :rtype: str + """ + return self._searching_pattern + + @searching_pattern.setter + def searching_pattern(self, searching_pattern): + """Sets the searching_pattern of this SearchResponse. + + A regular expression pattern used to find matches. # noqa: E501 + + :param searching_pattern: The searching_pattern of this SearchResponse. # noqa: E501 + :type: str + """ + self._searching_pattern = searching_pattern + @property + def search_results(self): + """Gets the search_results of this SearchResponse. # noqa: E501 + + Collection of search results. # noqa: E501 + + :return: The search_results of this SearchResponse. # noqa: E501 + :rtype: SearchResultsCollection + """ + return self._search_results + + @search_results.setter + def search_results(self, search_results): + """Sets the search_results of this SearchResponse. + + Collection of search results. # noqa: E501 + + :param search_results: The search_results of this SearchResponse. # noqa: E501 + :type: SearchResultsCollection + """ + self._search_results = search_results + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SearchResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/search_result.py b/asposewordscloud/models/search_result.py new file mode 100644 index 00000000..232d8b19 --- /dev/null +++ b/asposewordscloud/models/search_result.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SearchResult(object): + """Result of search operation. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'range_start': 'DocumentPosition', + 'range_end': 'DocumentPosition' + } + + attribute_map = { + 'range_start': 'RangeStart', + 'range_end': 'RangeEnd' + } + + def __init__(self, range_start=None, range_end=None): # noqa: E501 + """SearchResult - a model defined in Swagger""" # noqa: E501 + + self._range_start = None + self._range_end = None + self.discriminator = None + + if range_start is not None: + self.range_start = range_start + if range_end is not None: + self.range_end = range_end + + @property + def range_start(self): + """Gets the range_start of this SearchResult. # noqa: E501 + + Link to result range start node. # noqa: E501 + + :return: The range_start of this SearchResult. # noqa: E501 + :rtype: DocumentPosition + """ + return self._range_start + + @range_start.setter + def range_start(self, range_start): + """Sets the range_start of this SearchResult. + + Link to result range start node. # noqa: E501 + + :param range_start: The range_start of this SearchResult. # noqa: E501 + :type: DocumentPosition + """ + self._range_start = range_start + @property + def range_end(self): + """Gets the range_end of this SearchResult. # noqa: E501 + + Link to result range end node. # noqa: E501 + + :return: The range_end of this SearchResult. # noqa: E501 + :rtype: DocumentPosition + """ + return self._range_end + + @range_end.setter + def range_end(self, range_end): + """Sets the range_end of this SearchResult. + + Link to result range end node. # noqa: E501 + + :param range_end: The range_end of this SearchResult. # noqa: E501 + :type: DocumentPosition + """ + self._range_end = range_end + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SearchResult): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/search_results_collection.py b/asposewordscloud/models/search_results_collection.py new file mode 100644 index 00000000..315a8483 --- /dev/null +++ b/asposewordscloud/models/search_results_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SearchResultsCollection(object): + """Collection of search results. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'results_list': 'list[SearchResult]' + } + + attribute_map = { + 'link': 'link', + 'results_list': 'ResultsList' + } + + def __init__(self, link=None, results_list=None): # noqa: E501 + """SearchResultsCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._results_list = None + self.discriminator = None + + if link is not None: + self.link = link + if results_list is not None: + self.results_list = results_list + + @property + def link(self): + """Gets the link of this SearchResultsCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this SearchResultsCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this SearchResultsCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this SearchResultsCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def results_list(self): + """Gets the results_list of this SearchResultsCollection. # noqa: E501 + + Collection of comments # noqa: E501 + + :return: The results_list of this SearchResultsCollection. # noqa: E501 + :rtype: list[SearchResult] + """ + return self._results_list + + @results_list.setter + def results_list(self, results_list): + """Sets the results_list of this SearchResultsCollection. + + Collection of comments # noqa: E501 + + :param results_list: The results_list of this SearchResultsCollection. # noqa: E501 + :type: list[SearchResult] + """ + self._results_list = results_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SearchResultsCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/section.py b/asposewordscloud/models/section.py new file mode 100644 index 00000000..ab3f2597 --- /dev/null +++ b/asposewordscloud/models/section.py @@ -0,0 +1,252 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Section(object): + """Section element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'child_nodes': 'list[NodeLink]', + 'header_footers': 'LinkElement', + 'page_setup': 'LinkElement', + 'paragraphs': 'LinkElement', + 'tables': 'LinkElement' + } + + attribute_map = { + 'link': 'link', + 'child_nodes': 'ChildNodes', + 'header_footers': 'HeaderFooters', + 'page_setup': 'PageSetup', + 'paragraphs': 'Paragraphs', + 'tables': 'Tables' + } + + def __init__(self, link=None, child_nodes=None, header_footers=None, page_setup=None, paragraphs=None, tables=None): # noqa: E501 + """Section - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._child_nodes = None + self._header_footers = None + self._page_setup = None + self._paragraphs = None + self._tables = None + self.discriminator = None + + if link is not None: + self.link = link + if child_nodes is not None: + self.child_nodes = child_nodes + if header_footers is not None: + self.header_footers = header_footers + if page_setup is not None: + self.page_setup = page_setup + if paragraphs is not None: + self.paragraphs = paragraphs + if tables is not None: + self.tables = tables + + @property + def link(self): + """Gets the link of this Section. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Section. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Section. + + Link to the document. # noqa: E501 + + :param link: The link of this Section. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def child_nodes(self): + """Gets the child_nodes of this Section. # noqa: E501 + + Child nodes. # noqa: E501 + + :return: The child_nodes of this Section. # noqa: E501 + :rtype: list[NodeLink] + """ + return self._child_nodes + + @child_nodes.setter + def child_nodes(self, child_nodes): + """Sets the child_nodes of this Section. + + Child nodes. # noqa: E501 + + :param child_nodes: The child_nodes of this Section. # noqa: E501 + :type: list[NodeLink] + """ + self._child_nodes = child_nodes + @property + def header_footers(self): + """Gets the header_footers of this Section. # noqa: E501 + + Link to HeaderFooters resource # noqa: E501 + + :return: The header_footers of this Section. # noqa: E501 + :rtype: LinkElement + """ + return self._header_footers + + @header_footers.setter + def header_footers(self, header_footers): + """Sets the header_footers of this Section. + + Link to HeaderFooters resource # noqa: E501 + + :param header_footers: The header_footers of this Section. # noqa: E501 + :type: LinkElement + """ + self._header_footers = header_footers + @property + def page_setup(self): + """Gets the page_setup of this Section. # noqa: E501 + + Link to PageSetup resource # noqa: E501 + + :return: The page_setup of this Section. # noqa: E501 + :rtype: LinkElement + """ + return self._page_setup + + @page_setup.setter + def page_setup(self, page_setup): + """Sets the page_setup of this Section. + + Link to PageSetup resource # noqa: E501 + + :param page_setup: The page_setup of this Section. # noqa: E501 + :type: LinkElement + """ + self._page_setup = page_setup + @property + def paragraphs(self): + """Gets the paragraphs of this Section. # noqa: E501 + + Link to Paragraphs resource # noqa: E501 + + :return: The paragraphs of this Section. # noqa: E501 + :rtype: LinkElement + """ + return self._paragraphs + + @paragraphs.setter + def paragraphs(self, paragraphs): + """Sets the paragraphs of this Section. + + Link to Paragraphs resource # noqa: E501 + + :param paragraphs: The paragraphs of this Section. # noqa: E501 + :type: LinkElement + """ + self._paragraphs = paragraphs + @property + def tables(self): + """Gets the tables of this Section. # noqa: E501 + + Link to Tables resource # noqa: E501 + + :return: The tables of this Section. # noqa: E501 + :rtype: LinkElement + """ + return self._tables + + @tables.setter + def tables(self, tables): + """Sets the tables of this Section. + + Link to Tables resource # noqa: E501 + + :param tables: The tables of this Section. # noqa: E501 + :type: LinkElement + """ + self._tables = tables + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Section): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/section_link.py b/asposewordscloud/models/section_link.py new file mode 100644 index 00000000..d702f031 --- /dev/null +++ b/asposewordscloud/models/section_link.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SectionLink(object): + """Section link element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink' + } + + attribute_map = { + 'link': 'link' + } + + def __init__(self, link=None): # noqa: E501 + """SectionLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self.discriminator = None + + if link is not None: + self.link = link + + @property + def link(self): + """Gets the link of this SectionLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this SectionLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this SectionLink. + + Link to the document. # noqa: E501 + + :param link: The link of this SectionLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SectionLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/section_link_collection.py b/asposewordscloud/models/section_link_collection.py new file mode 100644 index 00000000..9772375f --- /dev/null +++ b/asposewordscloud/models/section_link_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SectionLinkCollection(object): + """Collection of links to sections + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'section_link_list': 'list[SectionLink]' + } + + attribute_map = { + 'link': 'link', + 'section_link_list': 'SectionLinkList' + } + + def __init__(self, link=None, section_link_list=None): # noqa: E501 + """SectionLinkCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._section_link_list = None + self.discriminator = None + + if link is not None: + self.link = link + if section_link_list is not None: + self.section_link_list = section_link_list + + @property + def link(self): + """Gets the link of this SectionLinkCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this SectionLinkCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this SectionLinkCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this SectionLinkCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def section_link_list(self): + """Gets the section_link_list of this SectionLinkCollection. # noqa: E501 + + Collection of section's links # noqa: E501 + + :return: The section_link_list of this SectionLinkCollection. # noqa: E501 + :rtype: list[SectionLink] + """ + return self._section_link_list + + @section_link_list.setter + def section_link_list(self, section_link_list): + """Sets the section_link_list of this SectionLinkCollection. + + Collection of section's links # noqa: E501 + + :param section_link_list: The section_link_list of this SectionLinkCollection. # noqa: E501 + :type: list[SectionLink] + """ + self._section_link_list = section_link_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SectionLinkCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/section_link_collection_response.py b/asposewordscloud/models/section_link_collection_response.py new file mode 100644 index 00000000..4c432c57 --- /dev/null +++ b/asposewordscloud/models/section_link_collection_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SectionLinkCollectionResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/sections + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'sections': 'SectionLinkCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'sections': 'Sections' + } + + def __init__(self, code=None, status=None, sections=None): # noqa: E501 + """SectionLinkCollectionResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._sections = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if sections is not None: + self.sections = sections + + @property + def code(self): + """Gets the code of this SectionLinkCollectionResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this SectionLinkCollectionResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this SectionLinkCollectionResponse. + + Response status code. # noqa: E501 + + :param code: The code of this SectionLinkCollectionResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this SectionLinkCollectionResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this SectionLinkCollectionResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this SectionLinkCollectionResponse. + + Response status. # noqa: E501 + + :param status: The status of this SectionLinkCollectionResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def sections(self): + """Gets the sections of this SectionLinkCollectionResponse. # noqa: E501 + + Collection of sections # noqa: E501 + + :return: The sections of this SectionLinkCollectionResponse. # noqa: E501 + :rtype: SectionLinkCollection + """ + return self._sections + + @sections.setter + def sections(self, sections): + """Sets the sections of this SectionLinkCollectionResponse. + + Collection of sections # noqa: E501 + + :param sections: The sections of this SectionLinkCollectionResponse. # noqa: E501 + :type: SectionLinkCollection + """ + self._sections = sections + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SectionLinkCollectionResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/section_page_setup_response.py b/asposewordscloud/models/section_page_setup_response.py new file mode 100644 index 00000000..1c12cab5 --- /dev/null +++ b/asposewordscloud/models/section_page_setup_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SectionPageSetupResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/sections/{0}/PageSetup + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'page_setup': 'PageSetup' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'page_setup': 'PageSetup' + } + + def __init__(self, code=None, status=None, page_setup=None): # noqa: E501 + """SectionPageSetupResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._page_setup = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if page_setup is not None: + self.page_setup = page_setup + + @property + def code(self): + """Gets the code of this SectionPageSetupResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this SectionPageSetupResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this SectionPageSetupResponse. + + Response status code. # noqa: E501 + + :param code: The code of this SectionPageSetupResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this SectionPageSetupResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this SectionPageSetupResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this SectionPageSetupResponse. + + Response status. # noqa: E501 + + :param status: The status of this SectionPageSetupResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def page_setup(self): + """Gets the page_setup of this SectionPageSetupResponse. # noqa: E501 + + Section # noqa: E501 + + :return: The page_setup of this SectionPageSetupResponse. # noqa: E501 + :rtype: PageSetup + """ + return self._page_setup + + @page_setup.setter + def page_setup(self, page_setup): + """Sets the page_setup of this SectionPageSetupResponse. + + Section # noqa: E501 + + :param page_setup: The page_setup of this SectionPageSetupResponse. # noqa: E501 + :type: PageSetup + """ + self._page_setup = page_setup + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SectionPageSetupResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/section_response.py b/asposewordscloud/models/section_response.py new file mode 100644 index 00000000..fdc017d8 --- /dev/null +++ b/asposewordscloud/models/section_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SectionResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/sections/{0} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'section': 'Section' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'section': 'Section' + } + + def __init__(self, code=None, status=None, section=None): # noqa: E501 + """SectionResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._section = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if section is not None: + self.section = section + + @property + def code(self): + """Gets the code of this SectionResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this SectionResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this SectionResponse. + + Response status code. # noqa: E501 + + :param code: The code of this SectionResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this SectionResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this SectionResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this SectionResponse. + + Response status. # noqa: E501 + + :param status: The status of this SectionResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def section(self): + """Gets the section of this SectionResponse. # noqa: E501 + + Section # noqa: E501 + + :return: The section of this SectionResponse. # noqa: E501 + :rtype: Section + """ + return self._section + + @section.setter + def section(self, section): + """Sets the section of this SectionResponse. + + Section # noqa: E501 + + :param section: The section of this SectionResponse. # noqa: E501 + :type: Section + """ + self._section = section + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SectionResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/split_document_response.py b/asposewordscloud/models/split_document_response.py new file mode 100644 index 00000000..4ad120ae --- /dev/null +++ b/asposewordscloud/models/split_document_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SplitDocumentResponse(object): + """This response should be returned by the service when handling: POST /{name}/split . + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'split_result': 'SplitDocumentResult' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'split_result': 'SplitResult' + } + + def __init__(self, code=None, status=None, split_result=None): # noqa: E501 + """SplitDocumentResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._split_result = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if split_result is not None: + self.split_result = split_result + + @property + def code(self): + """Gets the code of this SplitDocumentResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this SplitDocumentResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this SplitDocumentResponse. + + Response status code. # noqa: E501 + + :param code: The code of this SplitDocumentResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this SplitDocumentResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this SplitDocumentResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this SplitDocumentResponse. + + Response status. # noqa: E501 + + :param status: The status of this SplitDocumentResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def split_result(self): + """Gets the split_result of this SplitDocumentResponse. # noqa: E501 + + Resylt of splitting document. # noqa: E501 + + :return: The split_result of this SplitDocumentResponse. # noqa: E501 + :rtype: SplitDocumentResult + """ + return self._split_result + + @split_result.setter + def split_result(self, split_result): + """Sets the split_result of this SplitDocumentResponse. + + Resylt of splitting document. # noqa: E501 + + :param split_result: The split_result of this SplitDocumentResponse. # noqa: E501 + :type: SplitDocumentResult + """ + self._split_result = split_result + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SplitDocumentResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/split_document_result.py b/asposewordscloud/models/split_document_result.py new file mode 100644 index 00000000..4201732d --- /dev/null +++ b/asposewordscloud/models/split_document_result.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SplitDocumentResult(object): + """Result of splitting document. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'source_document': 'FileLink', + 'pages': 'list[FileLink]', + 'zipped_pages': 'FileLink' + } + + attribute_map = { + 'source_document': 'SourceDocument', + 'pages': 'Pages', + 'zipped_pages': 'ZippedPages' + } + + def __init__(self, source_document=None, pages=None, zipped_pages=None): # noqa: E501 + """SplitDocumentResult - a model defined in Swagger""" # noqa: E501 + + self._source_document = None + self._pages = None + self._zipped_pages = None + self.discriminator = None + + if source_document is not None: + self.source_document = source_document + if pages is not None: + self.pages = pages + if zipped_pages is not None: + self.zipped_pages = zipped_pages + + @property + def source_document(self): + """Gets the source_document of this SplitDocumentResult. # noqa: E501 + + Linkt to the source document. # noqa: E501 + + :return: The source_document of this SplitDocumentResult. # noqa: E501 + :rtype: FileLink + """ + return self._source_document + + @source_document.setter + def source_document(self, source_document): + """Sets the source_document of this SplitDocumentResult. + + Linkt to the source document. # noqa: E501 + + :param source_document: The source_document of this SplitDocumentResult. # noqa: E501 + :type: FileLink + """ + self._source_document = source_document + @property + def pages(self): + """Gets the pages of this SplitDocumentResult. # noqa: E501 + + Array of pages. # noqa: E501 + + :return: The pages of this SplitDocumentResult. # noqa: E501 + :rtype: list[FileLink] + """ + return self._pages + + @pages.setter + def pages(self, pages): + """Sets the pages of this SplitDocumentResult. + + Array of pages. # noqa: E501 + + :param pages: The pages of this SplitDocumentResult. # noqa: E501 + :type: list[FileLink] + """ + self._pages = pages + @property + def zipped_pages(self): + """Gets the zipped_pages of this SplitDocumentResult. # noqa: E501 + + Link to the file archive with pages. # noqa: E501 + + :return: The zipped_pages of this SplitDocumentResult. # noqa: E501 + :rtype: FileLink + """ + return self._zipped_pages + + @zipped_pages.setter + def zipped_pages(self, zipped_pages): + """Sets the zipped_pages of this SplitDocumentResult. + + Link to the file archive with pages. # noqa: E501 + + :param zipped_pages: The zipped_pages of this SplitDocumentResult. # noqa: E501 + :type: FileLink + """ + self._zipped_pages = zipped_pages + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SplitDocumentResult): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/stat_data_response.py b/asposewordscloud/models/stat_data_response.py new file mode 100644 index 00000000..d1a38ca0 --- /dev/null +++ b/asposewordscloud/models/stat_data_response.py @@ -0,0 +1,202 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class StatDataResponse(object): + """Response for the request of the document's statistical data + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'document_link': 'FileLink', + 'stat_data': 'DocumentStatData' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'document_link': 'DocumentLink', + 'stat_data': 'StatData' + } + + def __init__(self, code=None, status=None, document_link=None, stat_data=None): # noqa: E501 + """StatDataResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._document_link = None + self._stat_data = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if document_link is not None: + self.document_link = document_link + if stat_data is not None: + self.stat_data = stat_data + + @property + def code(self): + """Gets the code of this StatDataResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this StatDataResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this StatDataResponse. + + Response status code. # noqa: E501 + + :param code: The code of this StatDataResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this StatDataResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this StatDataResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this StatDataResponse. + + Response status. # noqa: E501 + + :param status: The status of this StatDataResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def document_link(self): + """Gets the document_link of this StatDataResponse. # noqa: E501 + + Link to the document # noqa: E501 + + :return: The document_link of this StatDataResponse. # noqa: E501 + :rtype: FileLink + """ + return self._document_link + + @document_link.setter + def document_link(self, document_link): + """Sets the document_link of this StatDataResponse. + + Link to the document # noqa: E501 + + :param document_link: The document_link of this StatDataResponse. # noqa: E501 + :type: FileLink + """ + self._document_link = document_link + @property + def stat_data(self): + """Gets the stat_data of this StatDataResponse. # noqa: E501 + + Statistical data of the document # noqa: E501 + + :return: The stat_data of this StatDataResponse. # noqa: E501 + :rtype: DocumentStatData + """ + return self._stat_data + + @stat_data.setter + def stat_data(self, stat_data): + """Sets the stat_data of this StatDataResponse. + + Statistical data of the document # noqa: E501 + + :param stat_data: The stat_data of this StatDataResponse. # noqa: E501 + :type: DocumentStatData + """ + self._stat_data = stat_data + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, StatDataResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/story_child_nodes.py b/asposewordscloud/models/story_child_nodes.py new file mode 100644 index 00000000..52eb90c4 --- /dev/null +++ b/asposewordscloud/models/story_child_nodes.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class StoryChildNodes(object): + """Child nodes of or + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'child_nodes': 'list[NodeLink]' + } + + attribute_map = { + 'child_nodes': 'ChildNodes' + } + + def __init__(self, child_nodes=None): # noqa: E501 + """StoryChildNodes - a model defined in Swagger""" # noqa: E501 + + self._child_nodes = None + self.discriminator = None + + if child_nodes is not None: + self.child_nodes = child_nodes + + @property + def child_nodes(self): + """Gets the child_nodes of this StoryChildNodes. # noqa: E501 + + Child nodes. # noqa: E501 + + :return: The child_nodes of this StoryChildNodes. # noqa: E501 + :rtype: list[NodeLink] + """ + return self._child_nodes + + @child_nodes.setter + def child_nodes(self, child_nodes): + """Sets the child_nodes of this StoryChildNodes. + + Child nodes. # noqa: E501 + + :param child_nodes: The child_nodes of this StoryChildNodes. # noqa: E501 + :type: list[NodeLink] + """ + self._child_nodes = child_nodes + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, StoryChildNodes): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/string_format_data.py b/asposewordscloud/models/string_format_data.py new file mode 100644 index 00000000..ba6d6ca0 --- /dev/null +++ b/asposewordscloud/models/string_format_data.py @@ -0,0 +1,266 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class StringFormatData(object): + """Allows to specify System.Drawing.StringFormat options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'alignment': 'str', + 'format_flags': 'str', + 'hotkey_prefix': 'str', + 'line_alignment': 'str', + 'trimming': 'str' + } + + attribute_map = { + 'alignment': 'Alignment', + 'format_flags': 'FormatFlags', + 'hotkey_prefix': 'HotkeyPrefix', + 'line_alignment': 'LineAlignment', + 'trimming': 'Trimming' + } + + def __init__(self, alignment=None, format_flags=None, hotkey_prefix=None, line_alignment=None, trimming=None): # noqa: E501 + """StringFormatData - a model defined in Swagger""" # noqa: E501 + + self._alignment = None + self._format_flags = None + self._hotkey_prefix = None + self._line_alignment = None + self._trimming = None + self.discriminator = None + + if alignment is not None: + self.alignment = alignment + if format_flags is not None: + self.format_flags = format_flags + if hotkey_prefix is not None: + self.hotkey_prefix = hotkey_prefix + if line_alignment is not None: + self.line_alignment = line_alignment + if trimming is not None: + self.trimming = trimming + + @property + def alignment(self): + """Gets the alignment of this StringFormatData. # noqa: E501 + + Gets or sets horizontal alignment of the string. # noqa: E501 + + :return: The alignment of this StringFormatData. # noqa: E501 + :rtype: str + """ + return self._alignment + + @alignment.setter + def alignment(self, alignment): + """Sets the alignment of this StringFormatData. + + Gets or sets horizontal alignment of the string. # noqa: E501 + + :param alignment: The alignment of this StringFormatData. # noqa: E501 + :type: str + """ + allowed_values = ["Near", "Center", "Far"] # noqa: E501 + if not alignment.isdigit(): + if alignment not in allowed_values: + raise ValueError( + "Invalid value for `alignment` ({0}), must be one of {1}" # noqa: E501 + .format(alignment, allowed_values)) + self._alignment = alignment + else: + self._alignment = allowed_values[int(alignment) if six.PY3 else long(alignment)] + @property + def format_flags(self): + """Gets the format_flags of this StringFormatData. # noqa: E501 + + Gets or sets a System.Drawing.StringFormatFlags enumeration that contains formatting information. # noqa: E501 + + :return: The format_flags of this StringFormatData. # noqa: E501 + :rtype: str + """ + return self._format_flags + + @format_flags.setter + def format_flags(self, format_flags): + """Sets the format_flags of this StringFormatData. + + Gets or sets a System.Drawing.StringFormatFlags enumeration that contains formatting information. # noqa: E501 + + :param format_flags: The format_flags of this StringFormatData. # noqa: E501 + :type: str + """ + allowed_values = ["DirectionRightToLeft", "DirectionVertical", "FitBlackBox", "DisplayFormatControl", "NoFontFallback", "MeasureTrailingSpaces", "NoWrap", "LineLimit", "NoClip"] # noqa: E501 + if not format_flags.isdigit(): + if format_flags not in allowed_values: + raise ValueError( + "Invalid value for `format_flags` ({0}), must be one of {1}" # noqa: E501 + .format(format_flags, allowed_values)) + self._format_flags = format_flags + else: + self._format_flags = allowed_values[int(format_flags) if six.PY3 else long(format_flags)] + @property + def hotkey_prefix(self): + """Gets the hotkey_prefix of this StringFormatData. # noqa: E501 + + Gets or sets the System.Drawing.Text.HotkeyPrefix object for this System.Drawing.StringFormat object. # noqa: E501 + + :return: The hotkey_prefix of this StringFormatData. # noqa: E501 + :rtype: str + """ + return self._hotkey_prefix + + @hotkey_prefix.setter + def hotkey_prefix(self, hotkey_prefix): + """Sets the hotkey_prefix of this StringFormatData. + + Gets or sets the System.Drawing.Text.HotkeyPrefix object for this System.Drawing.StringFormat object. # noqa: E501 + + :param hotkey_prefix: The hotkey_prefix of this StringFormatData. # noqa: E501 + :type: str + """ + allowed_values = ["None", "Show", "Hide"] # noqa: E501 + if not hotkey_prefix.isdigit(): + if hotkey_prefix not in allowed_values: + raise ValueError( + "Invalid value for `hotkey_prefix` ({0}), must be one of {1}" # noqa: E501 + .format(hotkey_prefix, allowed_values)) + self._hotkey_prefix = hotkey_prefix + else: + self._hotkey_prefix = allowed_values[int(hotkey_prefix) if six.PY3 else long(hotkey_prefix)] + @property + def line_alignment(self): + """Gets the line_alignment of this StringFormatData. # noqa: E501 + + Gets or sets the vertical alignment of the string. # noqa: E501 + + :return: The line_alignment of this StringFormatData. # noqa: E501 + :rtype: str + """ + return self._line_alignment + + @line_alignment.setter + def line_alignment(self, line_alignment): + """Sets the line_alignment of this StringFormatData. + + Gets or sets the vertical alignment of the string. # noqa: E501 + + :param line_alignment: The line_alignment of this StringFormatData. # noqa: E501 + :type: str + """ + allowed_values = ["Near", "Center", "Far"] # noqa: E501 + if not line_alignment.isdigit(): + if line_alignment not in allowed_values: + raise ValueError( + "Invalid value for `line_alignment` ({0}), must be one of {1}" # noqa: E501 + .format(line_alignment, allowed_values)) + self._line_alignment = line_alignment + else: + self._line_alignment = allowed_values[int(line_alignment) if six.PY3 else long(line_alignment)] + @property + def trimming(self): + """Gets the trimming of this StringFormatData. # noqa: E501 + + Gets or sets the System.Drawing.StringTrimming enumeration for this System.Drawing.StringFormat object. # noqa: E501 + + :return: The trimming of this StringFormatData. # noqa: E501 + :rtype: str + """ + return self._trimming + + @trimming.setter + def trimming(self, trimming): + """Sets the trimming of this StringFormatData. + + Gets or sets the System.Drawing.StringTrimming enumeration for this System.Drawing.StringFormat object. # noqa: E501 + + :param trimming: The trimming of this StringFormatData. # noqa: E501 + :type: str + """ + allowed_values = ["None", "Character", "Word", "EllipsisCharacter", "EllipsisWord", "EllipsisPath"] # noqa: E501 + if not trimming.isdigit(): + if trimming not in allowed_values: + raise ValueError( + "Invalid value for `trimming` ({0}), must be one of {1}" # noqa: E501 + .format(trimming, allowed_values)) + self._trimming = trimming + else: + self._trimming = allowed_values[int(trimming) if six.PY3 else long(trimming)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, StringFormatData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/svg_save_options_data.py b/asposewordscloud/models/svg_save_options_data.py new file mode 100644 index 00000000..e5fb5272 --- /dev/null +++ b/asposewordscloud/models/svg_save_options_data.py @@ -0,0 +1,642 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class SvgSaveOptionsData(object): + """container class for svg save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'export_embedded_images': 'bool', + 'fit_to_view_port': 'bool', + 'resources_folder': 'str', + 'resources_folder_alias': 'str', + 'show_page_border': 'bool', + 'text_output_mode': 'str' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'export_embedded_images': 'ExportEmbeddedImages', + 'fit_to_view_port': 'FitToViewPort', + 'resources_folder': 'ResourcesFolder', + 'resources_folder_alias': 'ResourcesFolderAlias', + 'show_page_border': 'ShowPageBorder', + 'text_output_mode': 'TextOutputMode' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, export_embedded_images=None, fit_to_view_port=None, resources_folder=None, resources_folder_alias=None, show_page_border=None, text_output_mode=None): # noqa: E501 + """SvgSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._export_embedded_images = None + self._fit_to_view_port = None + self._resources_folder = None + self._resources_folder_alias = None + self._show_page_border = None + self._text_output_mode = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if export_embedded_images is not None: + self.export_embedded_images = export_embedded_images + if fit_to_view_port is not None: + self.fit_to_view_port = fit_to_view_port + if resources_folder is not None: + self.resources_folder = resources_folder + if resources_folder_alias is not None: + self.resources_folder_alias = resources_folder_alias + if show_page_border is not None: + self.show_page_border = show_page_border + if text_output_mode is not None: + self.text_output_mode = text_output_mode + + @property + def color_mode(self): + """Gets the color_mode of this SvgSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this SvgSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this SvgSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this SvgSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this SvgSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this SvgSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this SvgSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this SvgSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this SvgSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this SvgSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this SvgSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this SvgSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this SvgSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this SvgSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this SvgSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this SvgSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this SvgSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this SvgSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this SvgSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this SvgSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this SvgSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this SvgSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this SvgSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this SvgSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this SvgSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this SvgSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this SvgSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this SvgSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this SvgSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this SvgSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this SvgSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this SvgSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this SvgSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this SvgSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this SvgSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this SvgSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this SvgSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this SvgSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def export_embedded_images(self): + """Gets the export_embedded_images of this SvgSaveOptionsData. # noqa: E501 + + Specified whether images should be embedded into SVG document as base64 # noqa: E501 + + :return: The export_embedded_images of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_embedded_images + + @export_embedded_images.setter + def export_embedded_images(self, export_embedded_images): + """Sets the export_embedded_images of this SvgSaveOptionsData. + + Specified whether images should be embedded into SVG document as base64 # noqa: E501 + + :param export_embedded_images: The export_embedded_images of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_embedded_images = export_embedded_images + @property + def fit_to_view_port(self): + """Gets the fit_to_view_port of this SvgSaveOptionsData. # noqa: E501 + + Specifies if the output SVG should fill the available viewport area (browser window or container). When set to true width and height of output SVG are set to 100%. # noqa: E501 + + :return: The fit_to_view_port of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._fit_to_view_port + + @fit_to_view_port.setter + def fit_to_view_port(self, fit_to_view_port): + """Sets the fit_to_view_port of this SvgSaveOptionsData. + + Specifies if the output SVG should fill the available viewport area (browser window or container). When set to true width and height of output SVG are set to 100%. # noqa: E501 + + :param fit_to_view_port: The fit_to_view_port of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._fit_to_view_port = fit_to_view_port + @property + def resources_folder(self): + """Gets the resources_folder of this SvgSaveOptionsData. # noqa: E501 + + Specifies the physical folder where resources (images) are saved when exporting # noqa: E501 + + :return: The resources_folder of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resources_folder + + @resources_folder.setter + def resources_folder(self, resources_folder): + """Sets the resources_folder of this SvgSaveOptionsData. + + Specifies the physical folder where resources (images) are saved when exporting # noqa: E501 + + :param resources_folder: The resources_folder of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._resources_folder = resources_folder + @property + def resources_folder_alias(self): + """Gets the resources_folder_alias of this SvgSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :return: The resources_folder_alias of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resources_folder_alias + + @resources_folder_alias.setter + def resources_folder_alias(self, resources_folder_alias): + """Sets the resources_folder_alias of this SvgSaveOptionsData. + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :param resources_folder_alias: The resources_folder_alias of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._resources_folder_alias = resources_folder_alias + @property + def show_page_border(self): + """Gets the show_page_border of this SvgSaveOptionsData. # noqa: E501 + + Show/hide page stepper # noqa: E501 + + :return: The show_page_border of this SvgSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._show_page_border + + @show_page_border.setter + def show_page_border(self, show_page_border): + """Sets the show_page_border of this SvgSaveOptionsData. + + Show/hide page stepper # noqa: E501 + + :param show_page_border: The show_page_border of this SvgSaveOptionsData. # noqa: E501 + :type: bool + """ + self._show_page_border = show_page_border + @property + def text_output_mode(self): + """Gets the text_output_mode of this SvgSaveOptionsData. # noqa: E501 + + Determines how text should be rendered # noqa: E501 + + :return: The text_output_mode of this SvgSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._text_output_mode + + @text_output_mode.setter + def text_output_mode(self, text_output_mode): + """Sets the text_output_mode of this SvgSaveOptionsData. + + Determines how text should be rendered # noqa: E501 + + :param text_output_mode: The text_output_mode of this SvgSaveOptionsData. # noqa: E501 + :type: str + """ + self._text_output_mode = text_output_mode + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, SvgSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table.py b/asposewordscloud/models/table.py new file mode 100644 index 00000000..3cc83379 --- /dev/null +++ b/asposewordscloud/models/table.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class Table(object): + """Table element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'table_properties': 'TableProperties', + 'table_row_list': 'list[TableRow]' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'table_properties': 'TableProperties', + 'table_row_list': 'TableRowList' + } + + def __init__(self, link=None, node_id=None, table_properties=None, table_row_list=None): # noqa: E501 + """Table - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._table_properties = None + self._table_row_list = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if table_properties is not None: + self.table_properties = table_properties + if table_row_list is not None: + self.table_row_list = table_row_list + + @property + def link(self): + """Gets the link of this Table. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this Table. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this Table. + + Link to the document. # noqa: E501 + + :param link: The link of this Table. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this Table. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this Table. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this Table. + + Node id # noqa: E501 + + :param node_id: The node_id of this Table. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def table_properties(self): + """Gets the table_properties of this Table. # noqa: E501 + + Table properties. # noqa: E501 + + :return: The table_properties of this Table. # noqa: E501 + :rtype: TableProperties + """ + return self._table_properties + + @table_properties.setter + def table_properties(self, table_properties): + """Sets the table_properties of this Table. + + Table properties. # noqa: E501 + + :param table_properties: The table_properties of this Table. # noqa: E501 + :type: TableProperties + """ + self._table_properties = table_properties + @property + def table_row_list(self): + """Gets the table_row_list of this Table. # noqa: E501 + + Collection of table's rows. # noqa: E501 + + :return: The table_row_list of this Table. # noqa: E501 + :rtype: list[TableRow] + """ + return self._table_row_list + + @table_row_list.setter + def table_row_list(self, table_row_list): + """Sets the table_row_list of this Table. + + Collection of table's rows. # noqa: E501 + + :param table_row_list: The table_row_list of this Table. # noqa: E501 + :type: list[TableRow] + """ + self._table_row_list = table_row_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, Table): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_cell.py b/asposewordscloud/models/table_cell.py new file mode 100644 index 00000000..0163dcb2 --- /dev/null +++ b/asposewordscloud/models/table_cell.py @@ -0,0 +1,174 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableCell(object): + """Table cell element. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'child_nodes': 'list[NodeLink]' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'child_nodes': 'ChildNodes' + } + + def __init__(self, link=None, node_id=None, child_nodes=None): # noqa: E501 + """TableCell - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._child_nodes = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if child_nodes is not None: + self.child_nodes = child_nodes + + @property + def link(self): + """Gets the link of this TableCell. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableCell. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableCell. + + Link to the document. # noqa: E501 + + :param link: The link of this TableCell. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this TableCell. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this TableCell. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this TableCell. + + Node id # noqa: E501 + + :param node_id: The node_id of this TableCell. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def child_nodes(self): + """Gets the child_nodes of this TableCell. # noqa: E501 + + Child nodes. # noqa: E501 + + :return: The child_nodes of this TableCell. # noqa: E501 + :rtype: list[NodeLink] + """ + return self._child_nodes + + @child_nodes.setter + def child_nodes(self, child_nodes): + """Sets the child_nodes of this TableCell. + + Child nodes. # noqa: E501 + + :param child_nodes: The child_nodes of this TableCell. # noqa: E501 + :type: list[NodeLink] + """ + self._child_nodes = child_nodes + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableCell): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_cell_format.py b/asposewordscloud/models/table_cell_format.py new file mode 100644 index 00000000..38e0b277 --- /dev/null +++ b/asposewordscloud/models/table_cell_format.py @@ -0,0 +1,466 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableCellFormat(object): + """Represents all formatting for a table row. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'bottom_padding': 'float', + 'fit_text': 'bool', + 'horizontal_merge': 'str', + 'left_padding': 'float', + 'orientation': 'str', + 'preferred_width': 'PreferredWidth', + 'right_padding': 'float', + 'top_padding': 'float', + 'vertical_alignment': 'str', + 'vertical_merge': 'str', + 'width': 'float', + 'wrap_text': 'bool' + } + + attribute_map = { + 'link': 'link', + 'bottom_padding': 'BottomPadding', + 'fit_text': 'FitText', + 'horizontal_merge': 'HorizontalMerge', + 'left_padding': 'LeftPadding', + 'orientation': 'Orientation', + 'preferred_width': 'PreferredWidth', + 'right_padding': 'RightPadding', + 'top_padding': 'TopPadding', + 'vertical_alignment': 'VerticalAlignment', + 'vertical_merge': 'VerticalMerge', + 'width': 'Width', + 'wrap_text': 'WrapText' + } + + def __init__(self, link=None, bottom_padding=None, fit_text=None, horizontal_merge=None, left_padding=None, orientation=None, preferred_width=None, right_padding=None, top_padding=None, vertical_alignment=None, vertical_merge=None, width=None, wrap_text=None): # noqa: E501 + """TableCellFormat - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._bottom_padding = None + self._fit_text = None + self._horizontal_merge = None + self._left_padding = None + self._orientation = None + self._preferred_width = None + self._right_padding = None + self._top_padding = None + self._vertical_alignment = None + self._vertical_merge = None + self._width = None + self._wrap_text = None + self.discriminator = None + + if link is not None: + self.link = link + if bottom_padding is not None: + self.bottom_padding = bottom_padding + if fit_text is not None: + self.fit_text = fit_text + if horizontal_merge is not None: + self.horizontal_merge = horizontal_merge + if left_padding is not None: + self.left_padding = left_padding + if orientation is not None: + self.orientation = orientation + if preferred_width is not None: + self.preferred_width = preferred_width + if right_padding is not None: + self.right_padding = right_padding + if top_padding is not None: + self.top_padding = top_padding + if vertical_alignment is not None: + self.vertical_alignment = vertical_alignment + if vertical_merge is not None: + self.vertical_merge = vertical_merge + if width is not None: + self.width = width + if wrap_text is not None: + self.wrap_text = wrap_text + + @property + def link(self): + """Gets the link of this TableCellFormat. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableCellFormat. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableCellFormat. + + Link to the document. # noqa: E501 + + :param link: The link of this TableCellFormat. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def bottom_padding(self): + """Gets the bottom_padding of this TableCellFormat. # noqa: E501 + + Returns or sets the amount of space (in points) to add below the contents of cell. # noqa: E501 + + :return: The bottom_padding of this TableCellFormat. # noqa: E501 + :rtype: float + """ + return self._bottom_padding + + @bottom_padding.setter + def bottom_padding(self, bottom_padding): + """Sets the bottom_padding of this TableCellFormat. + + Returns or sets the amount of space (in points) to add below the contents of cell. # noqa: E501 + + :param bottom_padding: The bottom_padding of this TableCellFormat. # noqa: E501 + :type: float + """ + self._bottom_padding = bottom_padding + @property + def fit_text(self): + """Gets the fit_text of this TableCellFormat. # noqa: E501 + + If true, fits text in the cell, compressing each paragraph to the width of the cell. # noqa: E501 + + :return: The fit_text of this TableCellFormat. # noqa: E501 + :rtype: bool + """ + return self._fit_text + + @fit_text.setter + def fit_text(self, fit_text): + """Sets the fit_text of this TableCellFormat. + + If true, fits text in the cell, compressing each paragraph to the width of the cell. # noqa: E501 + + :param fit_text: The fit_text of this TableCellFormat. # noqa: E501 + :type: bool + """ + self._fit_text = fit_text + @property + def horizontal_merge(self): + """Gets the horizontal_merge of this TableCellFormat. # noqa: E501 + + Specifies how the cell is merged horizontally with other cells in the row. # noqa: E501 + + :return: The horizontal_merge of this TableCellFormat. # noqa: E501 + :rtype: str + """ + return self._horizontal_merge + + @horizontal_merge.setter + def horizontal_merge(self, horizontal_merge): + """Sets the horizontal_merge of this TableCellFormat. + + Specifies how the cell is merged horizontally with other cells in the row. # noqa: E501 + + :param horizontal_merge: The horizontal_merge of this TableCellFormat. # noqa: E501 + :type: str + """ + allowed_values = ["None", "First", "Previous"] # noqa: E501 + if not horizontal_merge.isdigit(): + if horizontal_merge not in allowed_values: + raise ValueError( + "Invalid value for `horizontal_merge` ({0}), must be one of {1}" # noqa: E501 + .format(horizontal_merge, allowed_values)) + self._horizontal_merge = horizontal_merge + else: + self._horizontal_merge = allowed_values[int(horizontal_merge) if six.PY3 else long(horizontal_merge)] + @property + def left_padding(self): + """Gets the left_padding of this TableCellFormat. # noqa: E501 + + Returns or sets the amount of space (in points) to add to the left of the contents of cell. # noqa: E501 + + :return: The left_padding of this TableCellFormat. # noqa: E501 + :rtype: float + """ + return self._left_padding + + @left_padding.setter + def left_padding(self, left_padding): + """Sets the left_padding of this TableCellFormat. + + Returns or sets the amount of space (in points) to add to the left of the contents of cell. # noqa: E501 + + :param left_padding: The left_padding of this TableCellFormat. # noqa: E501 + :type: float + """ + self._left_padding = left_padding + @property + def orientation(self): + """Gets the orientation of this TableCellFormat. # noqa: E501 + + Returns or sets the orientation of text in a table cell. # noqa: E501 + + :return: The orientation of this TableCellFormat. # noqa: E501 + :rtype: str + """ + return self._orientation + + @orientation.setter + def orientation(self, orientation): + """Sets the orientation of this TableCellFormat. + + Returns or sets the orientation of text in a table cell. # noqa: E501 + + :param orientation: The orientation of this TableCellFormat. # noqa: E501 + :type: str + """ + allowed_values = ["Horizontal", "Downward", "Upward", "HorizontalRotatedFarEast", "VerticalFarEast", "VerticalRotatedFarEast"] # noqa: E501 + if not orientation.isdigit(): + if orientation not in allowed_values: + raise ValueError( + "Invalid value for `orientation` ({0}), must be one of {1}" # noqa: E501 + .format(orientation, allowed_values)) + self._orientation = orientation + else: + self._orientation = allowed_values[int(orientation) if six.PY3 else long(orientation)] + @property + def preferred_width(self): + """Gets the preferred_width of this TableCellFormat. # noqa: E501 + + Returns or sets the preferred width of the cell. # noqa: E501 + + :return: The preferred_width of this TableCellFormat. # noqa: E501 + :rtype: PreferredWidth + """ + return self._preferred_width + + @preferred_width.setter + def preferred_width(self, preferred_width): + """Sets the preferred_width of this TableCellFormat. + + Returns or sets the preferred width of the cell. # noqa: E501 + + :param preferred_width: The preferred_width of this TableCellFormat. # noqa: E501 + :type: PreferredWidth + """ + self._preferred_width = preferred_width + @property + def right_padding(self): + """Gets the right_padding of this TableCellFormat. # noqa: E501 + + Returns or sets the amount of space (in points) to add to the right of the contents of cell. # noqa: E501 + + :return: The right_padding of this TableCellFormat. # noqa: E501 + :rtype: float + """ + return self._right_padding + + @right_padding.setter + def right_padding(self, right_padding): + """Sets the right_padding of this TableCellFormat. + + Returns or sets the amount of space (in points) to add to the right of the contents of cell. # noqa: E501 + + :param right_padding: The right_padding of this TableCellFormat. # noqa: E501 + :type: float + """ + self._right_padding = right_padding + @property + def top_padding(self): + """Gets the top_padding of this TableCellFormat. # noqa: E501 + + Returns or sets the amount of space (in points) to add above the contents of cell. # noqa: E501 + + :return: The top_padding of this TableCellFormat. # noqa: E501 + :rtype: float + """ + return self._top_padding + + @top_padding.setter + def top_padding(self, top_padding): + """Sets the top_padding of this TableCellFormat. + + Returns or sets the amount of space (in points) to add above the contents of cell. # noqa: E501 + + :param top_padding: The top_padding of this TableCellFormat. # noqa: E501 + :type: float + """ + self._top_padding = top_padding + @property + def vertical_alignment(self): + """Gets the vertical_alignment of this TableCellFormat. # noqa: E501 + + Returns or sets the vertical alignment of text in the cell. # noqa: E501 + + :return: The vertical_alignment of this TableCellFormat. # noqa: E501 + :rtype: str + """ + return self._vertical_alignment + + @vertical_alignment.setter + def vertical_alignment(self, vertical_alignment): + """Sets the vertical_alignment of this TableCellFormat. + + Returns or sets the vertical alignment of text in the cell. # noqa: E501 + + :param vertical_alignment: The vertical_alignment of this TableCellFormat. # noqa: E501 + :type: str + """ + allowed_values = ["Top", "Center", "Bottom"] # noqa: E501 + if not vertical_alignment.isdigit(): + if vertical_alignment not in allowed_values: + raise ValueError( + "Invalid value for `vertical_alignment` ({0}), must be one of {1}" # noqa: E501 + .format(vertical_alignment, allowed_values)) + self._vertical_alignment = vertical_alignment + else: + self._vertical_alignment = allowed_values[int(vertical_alignment) if six.PY3 else long(vertical_alignment)] + @property + def vertical_merge(self): + """Gets the vertical_merge of this TableCellFormat. # noqa: E501 + + Specifies how the cell is merged with other cells vertically. # noqa: E501 + + :return: The vertical_merge of this TableCellFormat. # noqa: E501 + :rtype: str + """ + return self._vertical_merge + + @vertical_merge.setter + def vertical_merge(self, vertical_merge): + """Sets the vertical_merge of this TableCellFormat. + + Specifies how the cell is merged with other cells vertically. # noqa: E501 + + :param vertical_merge: The vertical_merge of this TableCellFormat. # noqa: E501 + :type: str + """ + allowed_values = ["None", "First", "Previous"] # noqa: E501 + if not vertical_merge.isdigit(): + if vertical_merge not in allowed_values: + raise ValueError( + "Invalid value for `vertical_merge` ({0}), must be one of {1}" # noqa: E501 + .format(vertical_merge, allowed_values)) + self._vertical_merge = vertical_merge + else: + self._vertical_merge = allowed_values[int(vertical_merge) if six.PY3 else long(vertical_merge)] + @property + def width(self): + """Gets the width of this TableCellFormat. # noqa: E501 + + Gets the width of the cell in points. # noqa: E501 + + :return: The width of this TableCellFormat. # noqa: E501 + :rtype: float + """ + return self._width + + @width.setter + def width(self, width): + """Sets the width of this TableCellFormat. + + Gets the width of the cell in points. # noqa: E501 + + :param width: The width of this TableCellFormat. # noqa: E501 + :type: float + """ + self._width = width + @property + def wrap_text(self): + """Gets the wrap_text of this TableCellFormat. # noqa: E501 + + If true, wrap text for the cell. # noqa: E501 + + :return: The wrap_text of this TableCellFormat. # noqa: E501 + :rtype: bool + """ + return self._wrap_text + + @wrap_text.setter + def wrap_text(self, wrap_text): + """Sets the wrap_text of this TableCellFormat. + + If true, wrap text for the cell. # noqa: E501 + + :param wrap_text: The wrap_text of this TableCellFormat. # noqa: E501 + :type: bool + """ + self._wrap_text = wrap_text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableCellFormat): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_cell_format_response.py b/asposewordscloud/models/table_cell_format_response.py new file mode 100644 index 00000000..089270ee --- /dev/null +++ b/asposewordscloud/models/table_cell_format_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableCellFormatResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables/{0}/rows/{1}/cells/{2}/cellformat + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'cell_format': 'TableCellFormat' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'cell_format': 'CellFormat' + } + + def __init__(self, code=None, status=None, cell_format=None): # noqa: E501 + """TableCellFormatResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._cell_format = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if cell_format is not None: + self.cell_format = cell_format + + @property + def code(self): + """Gets the code of this TableCellFormatResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TableCellFormatResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TableCellFormatResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TableCellFormatResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TableCellFormatResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TableCellFormatResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TableCellFormatResponse. + + Response status. # noqa: E501 + + :param status: The status of this TableCellFormatResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def cell_format(self): + """Gets the cell_format of this TableCellFormatResponse. # noqa: E501 + + Table. # noqa: E501 + + :return: The cell_format of this TableCellFormatResponse. # noqa: E501 + :rtype: TableCellFormat + """ + return self._cell_format + + @cell_format.setter + def cell_format(self, cell_format): + """Sets the cell_format of this TableCellFormatResponse. + + Table. # noqa: E501 + + :param cell_format: The cell_format of this TableCellFormatResponse. # noqa: E501 + :type: TableCellFormat + """ + self._cell_format = cell_format + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableCellFormatResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_cell_insert.py b/asposewordscloud/models/table_cell_insert.py new file mode 100644 index 00000000..9482f414 --- /dev/null +++ b/asposewordscloud/models/table_cell_insert.py @@ -0,0 +1,122 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableCellInsert(object): + """Table cell element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'insert_after': 'int' + } + + attribute_map = { + 'insert_after': 'InsertAfter' + } + + def __init__(self, insert_after=None): # noqa: E501 + """TableCellInsert - a model defined in Swagger""" # noqa: E501 + + self._insert_after = None + self.discriminator = None + + if insert_after is not None: + self.insert_after = insert_after + + @property + def insert_after(self): + """Gets the insert_after of this TableCellInsert. # noqa: E501 + + Table cell will be inserted after cell with specified 0-based index. # noqa: E501 + + :return: The insert_after of this TableCellInsert. # noqa: E501 + :rtype: int + """ + return self._insert_after + + @insert_after.setter + def insert_after(self, insert_after): + """Sets the insert_after of this TableCellInsert. + + Table cell will be inserted after cell with specified 0-based index. # noqa: E501 + + :param insert_after: The insert_after of this TableCellInsert. # noqa: E501 + :type: int + """ + self._insert_after = insert_after + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableCellInsert): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_cell_response.py b/asposewordscloud/models/table_cell_response.py new file mode 100644 index 00000000..a3f43273 --- /dev/null +++ b/asposewordscloud/models/table_cell_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableCellResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables/{0} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'cell': 'TableCell' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'cell': 'Cell' + } + + def __init__(self, code=None, status=None, cell=None): # noqa: E501 + """TableCellResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._cell = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if cell is not None: + self.cell = cell + + @property + def code(self): + """Gets the code of this TableCellResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TableCellResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TableCellResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TableCellResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TableCellResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TableCellResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TableCellResponse. + + Response status. # noqa: E501 + + :param status: The status of this TableCellResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def cell(self): + """Gets the cell of this TableCellResponse. # noqa: E501 + + Table cell. # noqa: E501 + + :return: The cell of this TableCellResponse. # noqa: E501 + :rtype: TableCell + """ + return self._cell + + @cell.setter + def cell(self, cell): + """Sets the cell of this TableCellResponse. + + Table cell. # noqa: E501 + + :param cell: The cell of this TableCellResponse. # noqa: E501 + :type: TableCell + """ + self._cell = cell + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableCellResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_insert.py b/asposewordscloud/models/table_insert.py new file mode 100644 index 00000000..33b5f1f0 --- /dev/null +++ b/asposewordscloud/models/table_insert.py @@ -0,0 +1,178 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableInsert(object): + """Table element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'postion': 'DocumentPosition', + 'columns_count': 'int', + 'rows_count': 'int' + } + + attribute_map = { + 'postion': 'Postion', + 'columns_count': 'ColumnsCount', + 'rows_count': 'RowsCount' + } + + def __init__(self, postion=None, columns_count=None, rows_count=None): # noqa: E501 + """TableInsert - a model defined in Swagger""" # noqa: E501 + + self._postion = None + self._columns_count = None + self._rows_count = None + self.discriminator = None + + if postion is not None: + self.postion = postion + if columns_count is not None: + self.columns_count = columns_count + if rows_count is not None: + self.rows_count = rows_count + + @property + def postion(self): + """Gets the postion of this TableInsert. # noqa: E501 + + Table will be inserted before specified position. # noqa: E501 + + :return: The postion of this TableInsert. # noqa: E501 + :rtype: DocumentPosition + """ + return self._postion + + @postion.setter + def postion(self, postion): + """Sets the postion of this TableInsert. + + Table will be inserted before specified position. # noqa: E501 + + :param postion: The postion of this TableInsert. # noqa: E501 + :type: DocumentPosition + """ + self._postion = postion + @property + def columns_count(self): + """Gets the columns_count of this TableInsert. # noqa: E501 + + Count of columns. Default is 2. # noqa: E501 + + :return: The columns_count of this TableInsert. # noqa: E501 + :rtype: int + """ + return self._columns_count + + @columns_count.setter + def columns_count(self, columns_count): + """Sets the columns_count of this TableInsert. + + Count of columns. Default is 2. # noqa: E501 + + :param columns_count: The columns_count of this TableInsert. # noqa: E501 + :type: int + """ + if columns_count is None: + raise ValueError("Invalid value for `columns_count`, must not be `None`") # noqa: E501 + self._columns_count = columns_count + @property + def rows_count(self): + """Gets the rows_count of this TableInsert. # noqa: E501 + + Count of rows. Default is 2. # noqa: E501 + + :return: The rows_count of this TableInsert. # noqa: E501 + :rtype: int + """ + return self._rows_count + + @rows_count.setter + def rows_count(self, rows_count): + """Sets the rows_count of this TableInsert. + + Count of rows. Default is 2. # noqa: E501 + + :param rows_count: The rows_count of this TableInsert. # noqa: E501 + :type: int + """ + if rows_count is None: + raise ValueError("Invalid value for `rows_count`, must not be `None`") # noqa: E501 + self._rows_count = rows_count + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableInsert): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_link.py b/asposewordscloud/models/table_link.py new file mode 100644 index 00000000..a53ade9e --- /dev/null +++ b/asposewordscloud/models/table_link.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableLink(object): + """Table link element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId' + } + + def __init__(self, link=None, node_id=None): # noqa: E501 + """TableLink - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + + @property + def link(self): + """Gets the link of this TableLink. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableLink. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableLink. + + Link to the document. # noqa: E501 + + :param link: The link of this TableLink. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this TableLink. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this TableLink. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this TableLink. + + Node id # noqa: E501 + + :param node_id: The node_id of this TableLink. # noqa: E501 + :type: str + """ + self._node_id = node_id + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_link_collection.py b/asposewordscloud/models/table_link_collection.py new file mode 100644 index 00000000..7d272be4 --- /dev/null +++ b/asposewordscloud/models/table_link_collection.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableLinkCollection(object): + """Collection of links to tables + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'table_link_list': 'list[TableLink]' + } + + attribute_map = { + 'link': 'link', + 'table_link_list': 'TableLinkList' + } + + def __init__(self, link=None, table_link_list=None): # noqa: E501 + """TableLinkCollection - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._table_link_list = None + self.discriminator = None + + if link is not None: + self.link = link + if table_link_list is not None: + self.table_link_list = table_link_list + + @property + def link(self): + """Gets the link of this TableLinkCollection. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableLinkCollection. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableLinkCollection. + + Link to the document. # noqa: E501 + + :param link: The link of this TableLinkCollection. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def table_link_list(self): + """Gets the table_link_list of this TableLinkCollection. # noqa: E501 + + Collection of table's links # noqa: E501 + + :return: The table_link_list of this TableLinkCollection. # noqa: E501 + :rtype: list[TableLink] + """ + return self._table_link_list + + @table_link_list.setter + def table_link_list(self, table_link_list): + """Sets the table_link_list of this TableLinkCollection. + + Collection of table's links # noqa: E501 + + :param table_link_list: The table_link_list of this TableLinkCollection. # noqa: E501 + :type: list[TableLink] + """ + self._table_link_list = table_link_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableLinkCollection): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_link_collection_response.py b/asposewordscloud/models/table_link_collection_response.py new file mode 100644 index 00000000..fb3346da --- /dev/null +++ b/asposewordscloud/models/table_link_collection_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableLinkCollectionResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'tables': 'TableLinkCollection' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'tables': 'Tables' + } + + def __init__(self, code=None, status=None, tables=None): # noqa: E501 + """TableLinkCollectionResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._tables = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if tables is not None: + self.tables = tables + + @property + def code(self): + """Gets the code of this TableLinkCollectionResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TableLinkCollectionResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TableLinkCollectionResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TableLinkCollectionResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TableLinkCollectionResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TableLinkCollectionResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TableLinkCollectionResponse. + + Response status. # noqa: E501 + + :param status: The status of this TableLinkCollectionResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def tables(self): + """Gets the tables of this TableLinkCollectionResponse. # noqa: E501 + + Collection of tables. # noqa: E501 + + :return: The tables of this TableLinkCollectionResponse. # noqa: E501 + :rtype: TableLinkCollection + """ + return self._tables + + @tables.setter + def tables(self, tables): + """Sets the tables of this TableLinkCollectionResponse. + + Collection of tables. # noqa: E501 + + :param tables: The tables of this TableLinkCollectionResponse. # noqa: E501 + :type: TableLinkCollection + """ + self._tables = tables + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableLinkCollectionResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_properties.py b/asposewordscloud/models/table_properties.py new file mode 100644 index 00000000..7b466a5e --- /dev/null +++ b/asposewordscloud/models/table_properties.py @@ -0,0 +1,518 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableProperties(object): + """Represents the table properties. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'alignment': 'str', + 'allow_auto_fit': 'bool', + 'bidi': 'bool', + 'bottom_padding': 'float', + 'cell_spacing': 'float', + 'left_indent': 'float', + 'left_padding': 'float', + 'preferred_width': 'PreferredWidth', + 'right_padding': 'float', + 'style_identifier': 'str', + 'style_name': 'str', + 'style_options': 'str', + 'text_wrapping': 'str', + 'top_padding': 'float' + } + + attribute_map = { + 'link': 'link', + 'alignment': 'Alignment', + 'allow_auto_fit': 'AllowAutoFit', + 'bidi': 'Bidi', + 'bottom_padding': 'BottomPadding', + 'cell_spacing': 'CellSpacing', + 'left_indent': 'LeftIndent', + 'left_padding': 'LeftPadding', + 'preferred_width': 'PreferredWidth', + 'right_padding': 'RightPadding', + 'style_identifier': 'StyleIdentifier', + 'style_name': 'StyleName', + 'style_options': 'StyleOptions', + 'text_wrapping': 'TextWrapping', + 'top_padding': 'TopPadding' + } + + def __init__(self, link=None, alignment=None, allow_auto_fit=None, bidi=None, bottom_padding=None, cell_spacing=None, left_indent=None, left_padding=None, preferred_width=None, right_padding=None, style_identifier=None, style_name=None, style_options=None, text_wrapping=None, top_padding=None): # noqa: E501 + """TableProperties - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._alignment = None + self._allow_auto_fit = None + self._bidi = None + self._bottom_padding = None + self._cell_spacing = None + self._left_indent = None + self._left_padding = None + self._preferred_width = None + self._right_padding = None + self._style_identifier = None + self._style_name = None + self._style_options = None + self._text_wrapping = None + self._top_padding = None + self.discriminator = None + + if link is not None: + self.link = link + if alignment is not None: + self.alignment = alignment + if allow_auto_fit is not None: + self.allow_auto_fit = allow_auto_fit + if bidi is not None: + self.bidi = bidi + if bottom_padding is not None: + self.bottom_padding = bottom_padding + if cell_spacing is not None: + self.cell_spacing = cell_spacing + if left_indent is not None: + self.left_indent = left_indent + if left_padding is not None: + self.left_padding = left_padding + if preferred_width is not None: + self.preferred_width = preferred_width + if right_padding is not None: + self.right_padding = right_padding + if style_identifier is not None: + self.style_identifier = style_identifier + if style_name is not None: + self.style_name = style_name + if style_options is not None: + self.style_options = style_options + if text_wrapping is not None: + self.text_wrapping = text_wrapping + if top_padding is not None: + self.top_padding = top_padding + + @property + def link(self): + """Gets the link of this TableProperties. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableProperties. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableProperties. + + Link to the document. # noqa: E501 + + :param link: The link of this TableProperties. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def alignment(self): + """Gets the alignment of this TableProperties. # noqa: E501 + + Specifies how an inline table is aligned in the document. # noqa: E501 + + :return: The alignment of this TableProperties. # noqa: E501 + :rtype: str + """ + return self._alignment + + @alignment.setter + def alignment(self, alignment): + """Sets the alignment of this TableProperties. + + Specifies how an inline table is aligned in the document. # noqa: E501 + + :param alignment: The alignment of this TableProperties. # noqa: E501 + :type: str + """ + allowed_values = ["Left", "Center", "Right"] # noqa: E501 + if not alignment.isdigit(): + if alignment not in allowed_values: + raise ValueError( + "Invalid value for `alignment` ({0}), must be one of {1}" # noqa: E501 + .format(alignment, allowed_values)) + self._alignment = alignment + else: + self._alignment = allowed_values[int(alignment) if six.PY3 else long(alignment)] + @property + def allow_auto_fit(self): + """Gets the allow_auto_fit of this TableProperties. # noqa: E501 + + Allows Microsoft Word and Aspose.Words to automatically resize cells in a table to fit their contents. # noqa: E501 + + :return: The allow_auto_fit of this TableProperties. # noqa: E501 + :rtype: bool + """ + return self._allow_auto_fit + + @allow_auto_fit.setter + def allow_auto_fit(self, allow_auto_fit): + """Sets the allow_auto_fit of this TableProperties. + + Allows Microsoft Word and Aspose.Words to automatically resize cells in a table to fit their contents. # noqa: E501 + + :param allow_auto_fit: The allow_auto_fit of this TableProperties. # noqa: E501 + :type: bool + """ + self._allow_auto_fit = allow_auto_fit + @property + def bidi(self): + """Gets the bidi of this TableProperties. # noqa: E501 + + Gets or sets whether this is a right-to-left table. # noqa: E501 + + :return: The bidi of this TableProperties. # noqa: E501 + :rtype: bool + """ + return self._bidi + + @bidi.setter + def bidi(self, bidi): + """Sets the bidi of this TableProperties. + + Gets or sets whether this is a right-to-left table. # noqa: E501 + + :param bidi: The bidi of this TableProperties. # noqa: E501 + :type: bool + """ + self._bidi = bidi + @property + def bottom_padding(self): + """Gets the bottom_padding of this TableProperties. # noqa: E501 + + Gets or sets the amount of space (in points) to add below the contents of cells. # noqa: E501 + + :return: The bottom_padding of this TableProperties. # noqa: E501 + :rtype: float + """ + return self._bottom_padding + + @bottom_padding.setter + def bottom_padding(self, bottom_padding): + """Sets the bottom_padding of this TableProperties. + + Gets or sets the amount of space (in points) to add below the contents of cells. # noqa: E501 + + :param bottom_padding: The bottom_padding of this TableProperties. # noqa: E501 + :type: float + """ + self._bottom_padding = bottom_padding + @property + def cell_spacing(self): + """Gets the cell_spacing of this TableProperties. # noqa: E501 + + Gets or sets the amount of space (in points) between the cells. # noqa: E501 + + :return: The cell_spacing of this TableProperties. # noqa: E501 + :rtype: float + """ + return self._cell_spacing + + @cell_spacing.setter + def cell_spacing(self, cell_spacing): + """Sets the cell_spacing of this TableProperties. + + Gets or sets the amount of space (in points) between the cells. # noqa: E501 + + :param cell_spacing: The cell_spacing of this TableProperties. # noqa: E501 + :type: float + """ + self._cell_spacing = cell_spacing + @property + def left_indent(self): + """Gets the left_indent of this TableProperties. # noqa: E501 + + Gets or sets the value that represents the left indent of the table. # noqa: E501 + + :return: The left_indent of this TableProperties. # noqa: E501 + :rtype: float + """ + return self._left_indent + + @left_indent.setter + def left_indent(self, left_indent): + """Sets the left_indent of this TableProperties. + + Gets or sets the value that represents the left indent of the table. # noqa: E501 + + :param left_indent: The left_indent of this TableProperties. # noqa: E501 + :type: float + """ + self._left_indent = left_indent + @property + def left_padding(self): + """Gets the left_padding of this TableProperties. # noqa: E501 + + Gets or sets the amount of space (in points) to add to the left of the contents of cells. # noqa: E501 + + :return: The left_padding of this TableProperties. # noqa: E501 + :rtype: float + """ + return self._left_padding + + @left_padding.setter + def left_padding(self, left_padding): + """Sets the left_padding of this TableProperties. + + Gets or sets the amount of space (in points) to add to the left of the contents of cells. # noqa: E501 + + :param left_padding: The left_padding of this TableProperties. # noqa: E501 + :type: float + """ + self._left_padding = left_padding + @property + def preferred_width(self): + """Gets the preferred_width of this TableProperties. # noqa: E501 + + Gets or sets the table preferred width. Preferred width can be specified as a percentage, number of points or a special \"auto\" value. # noqa: E501 + + :return: The preferred_width of this TableProperties. # noqa: E501 + :rtype: PreferredWidth + """ + return self._preferred_width + + @preferred_width.setter + def preferred_width(self, preferred_width): + """Sets the preferred_width of this TableProperties. + + Gets or sets the table preferred width. Preferred width can be specified as a percentage, number of points or a special \"auto\" value. # noqa: E501 + + :param preferred_width: The preferred_width of this TableProperties. # noqa: E501 + :type: PreferredWidth + """ + self._preferred_width = preferred_width + @property + def right_padding(self): + """Gets the right_padding of this TableProperties. # noqa: E501 + + Gets or sets the amount of space (in points) to add to the right of the contents of cells. # noqa: E501 + + :return: The right_padding of this TableProperties. # noqa: E501 + :rtype: float + """ + return self._right_padding + + @right_padding.setter + def right_padding(self, right_padding): + """Sets the right_padding of this TableProperties. + + Gets or sets the amount of space (in points) to add to the right of the contents of cells. # noqa: E501 + + :param right_padding: The right_padding of this TableProperties. # noqa: E501 + :type: float + """ + self._right_padding = right_padding + @property + def style_identifier(self): + """Gets the style_identifier of this TableProperties. # noqa: E501 + + Gets or sets the locale independent style identifier of the table style applied to this table. # noqa: E501 + + :return: The style_identifier of this TableProperties. # noqa: E501 + :rtype: str + """ + return self._style_identifier + + @style_identifier.setter + def style_identifier(self, style_identifier): + """Sets the style_identifier of this TableProperties. + + Gets or sets the locale independent style identifier of the table style applied to this table. # noqa: E501 + + :param style_identifier: The style_identifier of this TableProperties. # noqa: E501 + :type: str + """ + allowed_values = ["Normal", "Heading1", "Heading2", "Heading3", "Heading4", "Heading5", "Heading6", "Heading7", "Heading8", "Heading9", "Index1", "Index2", "Index3", "Index4", "Index5", "Index6", "Index7", "Index8", "Index9", "Toc1", "Toc2", "Toc3", "Toc4", "Toc5", "Toc6", "Toc7", "Toc8", "Toc9", "NormalIndent", "FootnoteText", "CommentText", "Header", "Footer", "IndexHeading", "Caption", "TableOfFigures", "EnvelopeAddress", "EnvelopeReturn", "FootnoteReference", "CommentReference", "LineNumber", "PageNumber", "EndnoteReference", "EndnoteText", "TableOfAuthorities", "Macro", "ToaHeading", "List", "ListBullet", "ListNumber", "List2", "List3", "List4", "List5", "ListBullet2", "ListBullet3", "ListBullet4", "ListBullet5", "ListNumber2", "ListNumber3", "ListNumber4", "ListNumber5", "Title", "Closing", "Signature", "DefaultParagraphFont", "BodyText", "BodyTextInd", "ListContinue", "ListContinue2", "ListContinue3", "ListContinue4", "ListContinue5", "MessageHeader", "Subtitle", "Salutation", "Date", "BodyText1I", "BodyText1I2", "NoteHeading", "BodyText2", "BodyText3", "BodyTextInd2", "BodyTextInd3", "BlockText", "Hyperlink", "FollowedHyperlink", "Strong", "Emphasis", "DocumentMap", "PlainText", "EmailSignature", "HtmlTopOfForm", "HtmlBottomOfForm", "NormalWeb", "HtmlAcronym", "HtmlAddress", "HtmlCite", "HtmlCode", "HtmlDefinition", "HtmlKeyboard", "HtmlPreformatted", "HtmlSample", "HtmlTypewriter", "HtmlVariable", "TableNormal", "CommentSubject", "NoList", "OutlineList1", "OutlineList2", "OutlineList3", "TableSimple1", "TableSimple2", "TableSimple3", "TableClassic1", "TableClassic2", "TableClassic3", "TableClassic4", "TableColorful1", "TableColorful2", "TableColorful3", "TableColumns1", "TableColumns2", "TableColumns3", "TableColumns4", "TableColumns5", "TableGrid1", "TableGrid2", "TableGrid3", "TableGrid4", "TableGrid5", "TableGrid6", "TableGrid7", "TableGrid8", "TableList1", "TableList2", "TableList3", "TableList4", "TableList5", "TableList6", "TableList7", "TableList8", "Table3DEffects1", "Table3DEffects2", "Table3DEffects3", "TableContemporary", "TableElegant", "TableProfessional", "TableSubtle1", "TableSubtle2", "TableWeb1", "TableWeb2", "TableWeb3", "BalloonText", "TableGrid", "TableTheme", "PlaceholderText", "NoSpacing", "LightShading", "LightList", "LightGrid", "MediumShading1", "MediumShading2", "MediumList1", "MediumList2", "MediumGrid1", "MediumGrid2", "MediumGrid3", "DarkList", "ColorfulShading", "ColorfulList", "ColorfulGrid", "LightShadingAccent1", "LightListAccent1", "LightGridAccent1", "MediumShading1Accent1", "MediumShading2Accent1", "MediumList1Accent1", "Revision", "ListParagraph", "Quote", "IntenseQuote", "MediumList2Accent1", "MediumGrid1Accent1", "MediumGrid2Accent1", "MediumGrid3Accent1", "DarkListAccent1", "ColorfulShadingAccent1", "ColorfulListAccent1", "ColorfulGridAccent1", "LightShadingAccent2", "LightListAccent2", "LightGridAccent2", "MediumShading1Accent2", "MediumShading2Accent2", "MediumList1Accent2", "MediumList2Accent2", "MediumGrid1Accent2", "MediumGrid2Accent2", "MediumGrid3Accent2", "DarkListAccent2", "ColorfulShadingAccent2", "ColorfulListAccent2", "ColorfulGridAccent2", "LightShadingAccent3", "LightListAccent3", "LightGridAccent3", "MediumShading1Accent3", "MediumShading2Accent3", "MediumList1Accent3", "MediumList2Accent3", "MediumGrid1Accent3", "MediumGrid2Accent3", "MediumGrid3Accent3", "DarkListAccent3", "ColorfulShadingAccent3", "ColorfulListAccent3", "ColorfulGridAccent3", "LightShadingAccent4", "LightListAccent4", "LightGridAccent4", "MediumShading1Accent4", "MediumShading2Accent4", "MediumList1Accent4", "MediumList2Accent4", "MediumGrid1Accent4", "MediumGrid2Accent4", "MediumGrid3Accent4", "DarkListAccent4", "ColorfulShadingAccent4", "ColorfulListAccent4", "ColorfulGridAccent4", "LightShadingAccent5", "LightListAccent5", "LightGridAccent5", "MediumShading1Accent5", "MediumShading2Accent5", "MediumList1Accent5", "MediumList2Accent5", "MediumGrid1Accent5", "MediumGrid2Accent5", "MediumGrid3Accent5", "DarkListAccent5", "ColorfulShadingAccent5", "ColorfulListAccent5", "ColorfulGridAccent5", "LightShadingAccent6", "LightListAccent6", "LightGridAccent6", "MediumShading1Accent6", "MediumShading2Accent6", "MediumList1Accent6", "MediumList2Accent6", "MediumGrid1Accent6", "MediumGrid2Accent6", "MediumGrid3Accent6", "DarkListAccent6", "ColorfulShadingAccent6", "ColorfulListAccent6", "ColorfulGridAccent6", "SubtleEmphasis", "IntenseEmphasis", "SubtleReference", "IntenseReference", "BookTitle", "Bibliography", "TocHeading", "PlainTable1", "PlainTable2", "PlainTable3", "PlainTable4", "PlainTable5", "TableGridLight", "GridTable1Light", "GridTable2", "GridTable3", "GridTable4", "GridTable5Dark", "GridTable6Colorful", "GridTable7Colorful", "GridTable1LightAccent1", "GridTable2Accent1", "GridTable3Accent1", "GridTable4Accent1", "GridTable5DarkAccent1", "GridTable6ColorfulAccent1", "GridTable7ColorfulAccent1", "GridTable1LightAccent2", "GridTable2Accent2", "GridTable3Accent2", "GridTable4Accent2", "GridTable5DarkAccent2", "GridTable6ColorfulAccent2", "GridTable7ColorfulAccent2", "GridTable1LightAccent3", "GridTable2Accent3", "GridTable3Accent3", "GridTable4Accent3", "GridTable5DarkAccent3", "GridTable6ColorfulAccent3", "GridTable7ColorfulAccent3", "GridTable1LightAccent4", "GridTable2Accent4", "GridTable3Accent4", "GridTable4Accent4", "GridTable5DarkAccent4", "GridTable6ColorfulAccent4", "GridTable7ColorfulAccent4", "GridTable1LightAccent5", "GridTable2Accent5", "GridTable3Accent5", "GridTable4Accent5", "GridTable5DarkAccent5", "GridTable6ColorfulAccent5", "GridTable7ColorfulAccent5", "GridTable1LightAccent6", "GridTable2Accent6", "GridTable3Accent6", "GridTable4Accent6", "GridTable5DarkAccent6", "GridTable6ColorfulAccent6", "GridTable7ColorfulAccent6", "ListTable1Light", "ListTable2", "ListTable3", "ListTable4", "ListTable5Dark", "ListTable6Colorful", "ListTable7Colorful", "ListTable1LightAccent1", "ListTable2Accent1", "ListTable3Accent1", "ListTable4Accent1", "ListTable5DarkAccent1", "ListTable6ColorfulAccent1", "ListTable7ColorfulAccent1", "ListTable1LightAccent2", "ListTable2Accent2", "ListTable3Accent2", "ListTable4Accent2", "ListTable5DarkAccent2", "ListTable6ColorfulAccent2", "ListTable7ColorfulAccent2", "ListTable1LightAccent3", "ListTable2Accent3", "ListTable3Accent3", "ListTable4Accent3", "ListTable5DarkAccent3", "ListTable6ColorfulAccent3", "ListTable7ColorfulAccent3", "ListTable1LightAccent4", "ListTable2Accent4", "ListTable3Accent4", "ListTable4Accent4", "ListTable5DarkAccent4", "ListTable6ColorfulAccent4", "ListTable7ColorfulAccent4", "ListTable1LightAccent5", "ListTable2Accent5", "ListTable3Accent5", "ListTable4Accent5", "ListTable5DarkAccent5", "ListTable6ColorfulAccent5", "ListTable7ColorfulAccent5", "ListTable1LightAccent6", "ListTable2Accent6", "ListTable3Accent6", "ListTable4Accent6", "ListTable5DarkAccent6", "ListTable6ColorfulAccent6", "ListTable7ColorfulAccent6", "User", "Nil"] # noqa: E501 + if not style_identifier.isdigit(): + if style_identifier not in allowed_values: + raise ValueError( + "Invalid value for `style_identifier` ({0}), must be one of {1}" # noqa: E501 + .format(style_identifier, allowed_values)) + self._style_identifier = style_identifier + else: + self._style_identifier = allowed_values[int(style_identifier) if six.PY3 else long(style_identifier)] + @property + def style_name(self): + """Gets the style_name of this TableProperties. # noqa: E501 + + Gets or sets the name of the table style applied to this table. # noqa: E501 + + :return: The style_name of this TableProperties. # noqa: E501 + :rtype: str + """ + return self._style_name + + @style_name.setter + def style_name(self, style_name): + """Sets the style_name of this TableProperties. + + Gets or sets the name of the table style applied to this table. # noqa: E501 + + :param style_name: The style_name of this TableProperties. # noqa: E501 + :type: str + """ + self._style_name = style_name + @property + def style_options(self): + """Gets the style_options of this TableProperties. # noqa: E501 + + Gets or sets bit flags that specify how a table style is applied to this table. # noqa: E501 + + :return: The style_options of this TableProperties. # noqa: E501 + :rtype: str + """ + return self._style_options + + @style_options.setter + def style_options(self, style_options): + """Sets the style_options of this TableProperties. + + Gets or sets bit flags that specify how a table style is applied to this table. # noqa: E501 + + :param style_options: The style_options of this TableProperties. # noqa: E501 + :type: str + """ + allowed_values = ["None", "FirstRow", "LastRow", "FirstColumn", "LastColumn", "RowBands", "Default", "ColumnBands", "Default2003"] # noqa: E501 + if not style_options.isdigit(): + if style_options not in allowed_values: + raise ValueError( + "Invalid value for `style_options` ({0}), must be one of {1}" # noqa: E501 + .format(style_options, allowed_values)) + self._style_options = style_options + else: + self._style_options = allowed_values[int(style_options) if six.PY3 else long(style_options)] + @property + def text_wrapping(self): + """Gets the text_wrapping of this TableProperties. # noqa: E501 + + Get or sets TextWrapping for table. # noqa: E501 + + :return: The text_wrapping of this TableProperties. # noqa: E501 + :rtype: str + """ + return self._text_wrapping + + @text_wrapping.setter + def text_wrapping(self, text_wrapping): + """Sets the text_wrapping of this TableProperties. + + Get or sets TextWrapping for table. # noqa: E501 + + :param text_wrapping: The text_wrapping of this TableProperties. # noqa: E501 + :type: str + """ + allowed_values = ["Default", "None", "Around"] # noqa: E501 + if not text_wrapping.isdigit(): + if text_wrapping not in allowed_values: + raise ValueError( + "Invalid value for `text_wrapping` ({0}), must be one of {1}" # noqa: E501 + .format(text_wrapping, allowed_values)) + self._text_wrapping = text_wrapping + else: + self._text_wrapping = allowed_values[int(text_wrapping) if six.PY3 else long(text_wrapping)] + @property + def top_padding(self): + """Gets the top_padding of this TableProperties. # noqa: E501 + + Gets or sets the amount of space (in points) to add above the contents of cells. # noqa: E501 + + :return: The top_padding of this TableProperties. # noqa: E501 + :rtype: float + """ + return self._top_padding + + @top_padding.setter + def top_padding(self, top_padding): + """Sets the top_padding of this TableProperties. + + Gets or sets the amount of space (in points) to add above the contents of cells. # noqa: E501 + + :param top_padding: The top_padding of this TableProperties. # noqa: E501 + :type: float + """ + self._top_padding = top_padding + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableProperties): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_properties_response.py b/asposewordscloud/models/table_properties_response.py new file mode 100644 index 00000000..5a9f80ab --- /dev/null +++ b/asposewordscloud/models/table_properties_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TablePropertiesResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables/{0}/properties + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'properties': 'TableProperties' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'properties': 'Properties' + } + + def __init__(self, code=None, status=None, properties=None): # noqa: E501 + """TablePropertiesResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._properties = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if properties is not None: + self.properties = properties + + @property + def code(self): + """Gets the code of this TablePropertiesResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TablePropertiesResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TablePropertiesResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TablePropertiesResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TablePropertiesResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TablePropertiesResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TablePropertiesResponse. + + Response status. # noqa: E501 + + :param status: The status of this TablePropertiesResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def properties(self): + """Gets the properties of this TablePropertiesResponse. # noqa: E501 + + Table. # noqa: E501 + + :return: The properties of this TablePropertiesResponse. # noqa: E501 + :rtype: TableProperties + """ + return self._properties + + @properties.setter + def properties(self, properties): + """Sets the properties of this TablePropertiesResponse. + + Table. # noqa: E501 + + :param properties: The properties of this TablePropertiesResponse. # noqa: E501 + :type: TableProperties + """ + self._properties = properties + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TablePropertiesResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_response.py b/asposewordscloud/models/table_response.py new file mode 100644 index 00000000..ba96b696 --- /dev/null +++ b/asposewordscloud/models/table_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables/{0} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'table': 'Table' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'table': 'Table' + } + + def __init__(self, code=None, status=None, table=None): # noqa: E501 + """TableResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._table = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if table is not None: + self.table = table + + @property + def code(self): + """Gets the code of this TableResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TableResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TableResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TableResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TableResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TableResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TableResponse. + + Response status. # noqa: E501 + + :param status: The status of this TableResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def table(self): + """Gets the table of this TableResponse. # noqa: E501 + + Table. # noqa: E501 + + :return: The table of this TableResponse. # noqa: E501 + :rtype: Table + """ + return self._table + + @table.setter + def table(self, table): + """Sets the table of this TableResponse. + + Table. # noqa: E501 + + :param table: The table of this TableResponse. # noqa: E501 + :type: Table + """ + self._table = table + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_row.py b/asposewordscloud/models/table_row.py new file mode 100644 index 00000000..014fce99 --- /dev/null +++ b/asposewordscloud/models/table_row.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableRow(object): + """Table row element. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'node_id': 'str', + 'row_format': 'TableRowFormat', + 'table_cell_list': 'list[TableCell]' + } + + attribute_map = { + 'link': 'link', + 'node_id': 'NodeId', + 'row_format': 'RowFormat', + 'table_cell_list': 'TableCellList' + } + + def __init__(self, link=None, node_id=None, row_format=None, table_cell_list=None): # noqa: E501 + """TableRow - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._node_id = None + self._row_format = None + self._table_cell_list = None + self.discriminator = None + + if link is not None: + self.link = link + if node_id is not None: + self.node_id = node_id + if row_format is not None: + self.row_format = row_format + if table_cell_list is not None: + self.table_cell_list = table_cell_list + + @property + def link(self): + """Gets the link of this TableRow. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableRow. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableRow. + + Link to the document. # noqa: E501 + + :param link: The link of this TableRow. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def node_id(self): + """Gets the node_id of this TableRow. # noqa: E501 + + Node id # noqa: E501 + + :return: The node_id of this TableRow. # noqa: E501 + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id): + """Sets the node_id of this TableRow. + + Node id # noqa: E501 + + :param node_id: The node_id of this TableRow. # noqa: E501 + :type: str + """ + self._node_id = node_id + @property + def row_format(self): + """Gets the row_format of this TableRow. # noqa: E501 + + Provides access to the formatting properties of the row. # noqa: E501 + + :return: The row_format of this TableRow. # noqa: E501 + :rtype: TableRowFormat + """ + return self._row_format + + @row_format.setter + def row_format(self, row_format): + """Sets the row_format of this TableRow. + + Provides access to the formatting properties of the row. # noqa: E501 + + :param row_format: The row_format of this TableRow. # noqa: E501 + :type: TableRowFormat + """ + self._row_format = row_format + @property + def table_cell_list(self): + """Gets the table_cell_list of this TableRow. # noqa: E501 + + Collection of table's rows. # noqa: E501 + + :return: The table_cell_list of this TableRow. # noqa: E501 + :rtype: list[TableCell] + """ + return self._table_cell_list + + @table_cell_list.setter + def table_cell_list(self, table_cell_list): + """Sets the table_cell_list of this TableRow. + + Collection of table's rows. # noqa: E501 + + :param table_cell_list: The table_cell_list of this TableRow. # noqa: E501 + :type: list[TableCell] + """ + self._table_cell_list = table_cell_list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableRow): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_row_format.py b/asposewordscloud/models/table_row_format.py new file mode 100644 index 00000000..239d44ec --- /dev/null +++ b/asposewordscloud/models/table_row_format.py @@ -0,0 +1,234 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableRowFormat(object): + """Represents all formatting for a table row. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'allow_break_across_pages': 'bool', + 'heading_format': 'bool', + 'height': 'float', + 'height_rule': 'str' + } + + attribute_map = { + 'link': 'link', + 'allow_break_across_pages': 'AllowBreakAcrossPages', + 'heading_format': 'HeadingFormat', + 'height': 'Height', + 'height_rule': 'HeightRule' + } + + def __init__(self, link=None, allow_break_across_pages=None, heading_format=None, height=None, height_rule=None): # noqa: E501 + """TableRowFormat - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._allow_break_across_pages = None + self._heading_format = None + self._height = None + self._height_rule = None + self.discriminator = None + + if link is not None: + self.link = link + if allow_break_across_pages is not None: + self.allow_break_across_pages = allow_break_across_pages + if heading_format is not None: + self.heading_format = heading_format + if height is not None: + self.height = height + if height_rule is not None: + self.height_rule = height_rule + + @property + def link(self): + """Gets the link of this TableRowFormat. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TableRowFormat. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TableRowFormat. + + Link to the document. # noqa: E501 + + :param link: The link of this TableRowFormat. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def allow_break_across_pages(self): + """Gets the allow_break_across_pages of this TableRowFormat. # noqa: E501 + + True if the text in a table row is allowed to split across a page break. # noqa: E501 + + :return: The allow_break_across_pages of this TableRowFormat. # noqa: E501 + :rtype: bool + """ + return self._allow_break_across_pages + + @allow_break_across_pages.setter + def allow_break_across_pages(self, allow_break_across_pages): + """Sets the allow_break_across_pages of this TableRowFormat. + + True if the text in a table row is allowed to split across a page break. # noqa: E501 + + :param allow_break_across_pages: The allow_break_across_pages of this TableRowFormat. # noqa: E501 + :type: bool + """ + self._allow_break_across_pages = allow_break_across_pages + @property + def heading_format(self): + """Gets the heading_format of this TableRowFormat. # noqa: E501 + + True if the row is repeated as a table heading on every page when the table spans more than one page. # noqa: E501 + + :return: The heading_format of this TableRowFormat. # noqa: E501 + :rtype: bool + """ + return self._heading_format + + @heading_format.setter + def heading_format(self, heading_format): + """Sets the heading_format of this TableRowFormat. + + True if the row is repeated as a table heading on every page when the table spans more than one page. # noqa: E501 + + :param heading_format: The heading_format of this TableRowFormat. # noqa: E501 + :type: bool + """ + self._heading_format = heading_format + @property + def height(self): + """Gets the height of this TableRowFormat. # noqa: E501 + + Gets or sets the height of the table row in points. # noqa: E501 + + :return: The height of this TableRowFormat. # noqa: E501 + :rtype: float + """ + return self._height + + @height.setter + def height(self, height): + """Sets the height of this TableRowFormat. + + Gets or sets the height of the table row in points. # noqa: E501 + + :param height: The height of this TableRowFormat. # noqa: E501 + :type: float + """ + self._height = height + @property + def height_rule(self): + """Gets the height_rule of this TableRowFormat. # noqa: E501 + + Gets or sets the rule for determining the height of the table row. # noqa: E501 + + :return: The height_rule of this TableRowFormat. # noqa: E501 + :rtype: str + """ + return self._height_rule + + @height_rule.setter + def height_rule(self, height_rule): + """Sets the height_rule of this TableRowFormat. + + Gets or sets the rule for determining the height of the table row. # noqa: E501 + + :param height_rule: The height_rule of this TableRowFormat. # noqa: E501 + :type: str + """ + allowed_values = ["AtLeast", "Exactly", "Auto"] # noqa: E501 + if not height_rule.isdigit(): + if height_rule not in allowed_values: + raise ValueError( + "Invalid value for `height_rule` ({0}), must be one of {1}" # noqa: E501 + .format(height_rule, allowed_values)) + self._height_rule = height_rule + else: + self._height_rule = allowed_values[int(height_rule) if six.PY3 else long(height_rule)] + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableRowFormat): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_row_format_response.py b/asposewordscloud/models/table_row_format_response.py new file mode 100644 index 00000000..b5ac5485 --- /dev/null +++ b/asposewordscloud/models/table_row_format_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableRowFormatResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables/{0}/rows/{1}/rowformat + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'row_format': 'TableRowFormat' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'row_format': 'RowFormat' + } + + def __init__(self, code=None, status=None, row_format=None): # noqa: E501 + """TableRowFormatResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._row_format = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if row_format is not None: + self.row_format = row_format + + @property + def code(self): + """Gets the code of this TableRowFormatResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TableRowFormatResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TableRowFormatResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TableRowFormatResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TableRowFormatResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TableRowFormatResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TableRowFormatResponse. + + Response status. # noqa: E501 + + :param status: The status of this TableRowFormatResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def row_format(self): + """Gets the row_format of this TableRowFormatResponse. # noqa: E501 + + Table. # noqa: E501 + + :return: The row_format of this TableRowFormatResponse. # noqa: E501 + :rtype: TableRowFormat + """ + return self._row_format + + @row_format.setter + def row_format(self, row_format): + """Sets the row_format of this TableRowFormatResponse. + + Table. # noqa: E501 + + :param row_format: The row_format of this TableRowFormatResponse. # noqa: E501 + :type: TableRowFormat + """ + self._row_format = row_format + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableRowFormatResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_row_insert.py b/asposewordscloud/models/table_row_insert.py new file mode 100644 index 00000000..9e01e05a --- /dev/null +++ b/asposewordscloud/models/table_row_insert.py @@ -0,0 +1,150 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableRowInsert(object): + """Table row element + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'insert_after': 'int', + 'columns_count': 'int' + } + + attribute_map = { + 'insert_after': 'InsertAfter', + 'columns_count': 'ColumnsCount' + } + + def __init__(self, insert_after=None, columns_count=None): # noqa: E501 + """TableRowInsert - a model defined in Swagger""" # noqa: E501 + + self._insert_after = None + self._columns_count = None + self.discriminator = None + + if insert_after is not None: + self.insert_after = insert_after + if columns_count is not None: + self.columns_count = columns_count + + @property + def insert_after(self): + """Gets the insert_after of this TableRowInsert. # noqa: E501 + + Table row will be inserted after row with specified 0-based index. # noqa: E501 + + :return: The insert_after of this TableRowInsert. # noqa: E501 + :rtype: int + """ + return self._insert_after + + @insert_after.setter + def insert_after(self, insert_after): + """Sets the insert_after of this TableRowInsert. + + Table row will be inserted after row with specified 0-based index. # noqa: E501 + + :param insert_after: The insert_after of this TableRowInsert. # noqa: E501 + :type: int + """ + self._insert_after = insert_after + @property + def columns_count(self): + """Gets the columns_count of this TableRowInsert. # noqa: E501 + + Count of columns. Default is 1. # noqa: E501 + + :return: The columns_count of this TableRowInsert. # noqa: E501 + :rtype: int + """ + return self._columns_count + + @columns_count.setter + def columns_count(self, columns_count): + """Sets the columns_count of this TableRowInsert. + + Count of columns. Default is 1. # noqa: E501 + + :param columns_count: The columns_count of this TableRowInsert. # noqa: E501 + :type: int + """ + if columns_count is None: + raise ValueError("Invalid value for `columns_count`, must not be `None`") # noqa: E501 + self._columns_count = columns_count + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableRowInsert): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/table_row_response.py b/asposewordscloud/models/table_row_response.py new file mode 100644 index 00000000..877daccd --- /dev/null +++ b/asposewordscloud/models/table_row_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TableRowResponse(object): + """This response should be returned by the service when handling: GET http://api.aspose.com/v1.1/words/Test.doc/tables/{0} + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'row': 'TableRow' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'row': 'Row' + } + + def __init__(self, code=None, status=None, row=None): # noqa: E501 + """TableRowResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._row = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if row is not None: + self.row = row + + @property + def code(self): + """Gets the code of this TableRowResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TableRowResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TableRowResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TableRowResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TableRowResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TableRowResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TableRowResponse. + + Response status. # noqa: E501 + + :param status: The status of this TableRowResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def row(self): + """Gets the row of this TableRowResponse. # noqa: E501 + + Table row. # noqa: E501 + + :return: The row of this TableRowResponse. # noqa: E501 + :rtype: TableRow + """ + return self._row + + @row.setter + def row(self, row): + """Sets the row of this TableRowResponse. + + Table row. # noqa: E501 + + :param row: The row of this TableRowResponse. # noqa: E501 + :type: TableRow + """ + self._row = row + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TableRowResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/text_item.py b/asposewordscloud/models/text_item.py new file mode 100644 index 00000000..c0b47d31 --- /dev/null +++ b/asposewordscloud/models/text_item.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TextItem(object): + """Represents text DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'text': 'str' + } + + attribute_map = { + 'link': 'link', + 'text': 'Text' + } + + def __init__(self, link=None, text=None): # noqa: E501 + """TextItem - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._text = None + self.discriminator = None + + if link is not None: + self.link = link + if text is not None: + self.text = text + + @property + def link(self): + """Gets the link of this TextItem. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TextItem. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TextItem. + + Link to the document. # noqa: E501 + + :param link: The link of this TextItem. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def text(self): + """Gets the text of this TextItem. # noqa: E501 + + Text. # noqa: E501 + + :return: The text of this TextItem. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this TextItem. + + Text. # noqa: E501 + + :param text: The text of this TextItem. # noqa: E501 + :type: str + """ + self._text = text + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TextItem): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/text_items.py b/asposewordscloud/models/text_items.py new file mode 100644 index 00000000..5c8f60c3 --- /dev/null +++ b/asposewordscloud/models/text_items.py @@ -0,0 +1,148 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TextItems(object): + """Represents text items DTO. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'link': 'WordsApiLink', + 'list': 'list[TextItem]' + } + + attribute_map = { + 'link': 'link', + 'list': 'List' + } + + def __init__(self, link=None, list=None): # noqa: E501 + """TextItems - a model defined in Swagger""" # noqa: E501 + + self._link = None + self._list = None + self.discriminator = None + + if link is not None: + self.link = link + if list is not None: + self.list = list + + @property + def link(self): + """Gets the link of this TextItems. # noqa: E501 + + Link to the document. # noqa: E501 + + :return: The link of this TextItems. # noqa: E501 + :rtype: WordsApiLink + """ + return self._link + + @link.setter + def link(self, link): + """Sets the link of this TextItems. + + Link to the document. # noqa: E501 + + :param link: The link of this TextItems. # noqa: E501 + :type: WordsApiLink + """ + self._link = link + @property + def list(self): + """Gets the list of this TextItems. # noqa: E501 + + Collection of text items. # noqa: E501 + + :return: The list of this TextItems. # noqa: E501 + :rtype: list[TextItem] + """ + return self._list + + @list.setter + def list(self, list): + """Sets the list of this TextItems. + + Collection of text items. # noqa: E501 + + :param list: The list of this TextItems. # noqa: E501 + :type: list[TextItem] + """ + self._list = list + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TextItems): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/text_items_response.py b/asposewordscloud/models/text_items_response.py new file mode 100644 index 00000000..6c7209ae --- /dev/null +++ b/asposewordscloud/models/text_items_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TextItemsResponse(object): + """This response should be returned by the service when handling: GET /{name}/textItems . + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'text_items': 'TextItems' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'text_items': 'TextItems' + } + + def __init__(self, code=None, status=None, text_items=None): # noqa: E501 + """TextItemsResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._text_items = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if text_items is not None: + self.text_items = text_items + + @property + def code(self): + """Gets the code of this TextItemsResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this TextItemsResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this TextItemsResponse. + + Response status code. # noqa: E501 + + :param code: The code of this TextItemsResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this TextItemsResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this TextItemsResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this TextItemsResponse. + + Response status. # noqa: E501 + + :param status: The status of this TextItemsResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def text_items(self): + """Gets the text_items of this TextItemsResponse. # noqa: E501 + + Collection of text items. # noqa: E501 + + :return: The text_items of this TextItemsResponse. # noqa: E501 + :rtype: TextItems + """ + return self._text_items + + @text_items.setter + def text_items(self, text_items): + """Sets the text_items of this TextItemsResponse. + + Collection of text items. # noqa: E501 + + :param text_items: The text_items of this TextItemsResponse. # noqa: E501 + :type: TextItems + """ + self._text_items = text_items + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TextItemsResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/text_save_options_data.py b/asposewordscloud/models/text_save_options_data.py new file mode 100644 index 00000000..632a62fd --- /dev/null +++ b/asposewordscloud/models/text_save_options_data.py @@ -0,0 +1,486 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TextSaveOptionsData(object): + """Container class for text save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'encoding': 'str', + 'export_headers_footers': 'bool', + 'force_page_breaks': 'bool', + 'paragraph_break': 'str', + 'preserve_table_layout': 'bool', + 'simplify_list_labels': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'encoding': 'Encoding', + 'export_headers_footers': 'ExportHeadersFooters', + 'force_page_breaks': 'ForcePageBreaks', + 'paragraph_break': 'ParagraphBreak', + 'preserve_table_layout': 'PreserveTableLayout', + 'simplify_list_labels': 'SimplifyListLabels' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, encoding=None, export_headers_footers=None, force_page_breaks=None, paragraph_break=None, preserve_table_layout=None, simplify_list_labels=None): # noqa: E501 + """TextSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._encoding = None + self._export_headers_footers = None + self._force_page_breaks = None + self._paragraph_break = None + self._preserve_table_layout = None + self._simplify_list_labels = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if encoding is not None: + self.encoding = encoding + if export_headers_footers is not None: + self.export_headers_footers = export_headers_footers + if force_page_breaks is not None: + self.force_page_breaks = force_page_breaks + if paragraph_break is not None: + self.paragraph_break = paragraph_break + if preserve_table_layout is not None: + self.preserve_table_layout = preserve_table_layout + if simplify_list_labels is not None: + self.simplify_list_labels = simplify_list_labels + + @property + def color_mode(self): + """Gets the color_mode of this TextSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this TextSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this TextSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this TextSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this TextSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this TextSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this TextSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this TextSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this TextSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this TextSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this TextSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this TextSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this TextSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this TextSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this TextSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this TextSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this TextSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this TextSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def encoding(self): + """Gets the encoding of this TextSaveOptionsData. # noqa: E501 + + Specifies the encoding to use when exporting in plain text format # noqa: E501 + + :return: The encoding of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._encoding + + @encoding.setter + def encoding(self, encoding): + """Sets the encoding of this TextSaveOptionsData. + + Specifies the encoding to use when exporting in plain text format # noqa: E501 + + :param encoding: The encoding of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._encoding = encoding + @property + def export_headers_footers(self): + """Gets the export_headers_footers of this TextSaveOptionsData. # noqa: E501 + + Specifies whether to output headers and footers when exporting in plain text format # noqa: E501 + + :return: The export_headers_footers of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._export_headers_footers + + @export_headers_footers.setter + def export_headers_footers(self, export_headers_footers): + """Sets the export_headers_footers of this TextSaveOptionsData. + + Specifies whether to output headers and footers when exporting in plain text format # noqa: E501 + + :param export_headers_footers: The export_headers_footers of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._export_headers_footers = export_headers_footers + @property + def force_page_breaks(self): + """Gets the force_page_breaks of this TextSaveOptionsData. # noqa: E501 + + Allows to specify whether the page breaks should be preserved during export. The default value is false. # noqa: E501 + + :return: The force_page_breaks of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._force_page_breaks + + @force_page_breaks.setter + def force_page_breaks(self, force_page_breaks): + """Sets the force_page_breaks of this TextSaveOptionsData. + + Allows to specify whether the page breaks should be preserved during export. The default value is false. # noqa: E501 + + :param force_page_breaks: The force_page_breaks of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._force_page_breaks = force_page_breaks + @property + def paragraph_break(self): + """Gets the paragraph_break of this TextSaveOptionsData. # noqa: E501 + + Specifies the string to use as a paragraph break when exporting in plain text format # noqa: E501 + + :return: The paragraph_break of this TextSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paragraph_break + + @paragraph_break.setter + def paragraph_break(self, paragraph_break): + """Sets the paragraph_break of this TextSaveOptionsData. + + Specifies the string to use as a paragraph break when exporting in plain text format # noqa: E501 + + :param paragraph_break: The paragraph_break of this TextSaveOptionsData. # noqa: E501 + :type: str + """ + self._paragraph_break = paragraph_break + @property + def preserve_table_layout(self): + """Gets the preserve_table_layout of this TextSaveOptionsData. # noqa: E501 + + Specifies whether the program should attempt to preserve layout of tables when saving in the plain text format # noqa: E501 + + :return: The preserve_table_layout of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._preserve_table_layout + + @preserve_table_layout.setter + def preserve_table_layout(self, preserve_table_layout): + """Sets the preserve_table_layout of this TextSaveOptionsData. + + Specifies whether the program should attempt to preserve layout of tables when saving in the plain text format # noqa: E501 + + :param preserve_table_layout: The preserve_table_layout of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._preserve_table_layout = preserve_table_layout + @property + def simplify_list_labels(self): + """Gets the simplify_list_labels of this TextSaveOptionsData. # noqa: E501 + + Specifies whether the program should simplify list labels in case of complex label formatting not being adequately represented by plain text # noqa: E501 + + :return: The simplify_list_labels of this TextSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._simplify_list_labels + + @simplify_list_labels.setter + def simplify_list_labels(self, simplify_list_labels): + """Sets the simplify_list_labels of this TextSaveOptionsData. + + Specifies whether the program should simplify list labels in case of complex label formatting not being adequately represented by plain text # noqa: E501 + + :param simplify_list_labels: The simplify_list_labels of this TextSaveOptionsData. # noqa: E501 + :type: bool + """ + self._simplify_list_labels = simplify_list_labels + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TextSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/tiff_save_options_data.py b/asposewordscloud/models/tiff_save_options_data.py new file mode 100644 index 00000000..248201d1 --- /dev/null +++ b/asposewordscloud/models/tiff_save_options_data.py @@ -0,0 +1,876 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class TiffSaveOptionsData(object): + """Container class for tiff save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'graphics_quality_options': 'GraphicsQualityOptionsData', + 'horizontal_resolution': 'float', + 'image_brightness': 'float', + 'image_color_mode': 'str', + 'image_contrast': 'float', + 'paper_color': 'str', + 'pixel_format': 'str', + 'resolution': 'float', + 'scale': 'float', + 'use_anti_aliasing': 'bool', + 'use_gdi_emf_renderer': 'bool', + 'use_high_quality_rendering': 'bool', + 'vertical_resolution': 'float', + 'tiff_binarization_method': 'str', + 'tiff_compression': 'str' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'graphics_quality_options': 'GraphicsQualityOptions', + 'horizontal_resolution': 'HorizontalResolution', + 'image_brightness': 'ImageBrightness', + 'image_color_mode': 'ImageColorMode', + 'image_contrast': 'ImageContrast', + 'paper_color': 'PaperColor', + 'pixel_format': 'PixelFormat', + 'resolution': 'Resolution', + 'scale': 'Scale', + 'use_anti_aliasing': 'UseAntiAliasing', + 'use_gdi_emf_renderer': 'UseGdiEmfRenderer', + 'use_high_quality_rendering': 'UseHighQualityRendering', + 'vertical_resolution': 'VerticalResolution', + 'tiff_binarization_method': 'TiffBinarizationMethod', + 'tiff_compression': 'TiffCompression' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, graphics_quality_options=None, horizontal_resolution=None, image_brightness=None, image_color_mode=None, image_contrast=None, paper_color=None, pixel_format=None, resolution=None, scale=None, use_anti_aliasing=None, use_gdi_emf_renderer=None, use_high_quality_rendering=None, vertical_resolution=None, tiff_binarization_method=None, tiff_compression=None): # noqa: E501 + """TiffSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._graphics_quality_options = None + self._horizontal_resolution = None + self._image_brightness = None + self._image_color_mode = None + self._image_contrast = None + self._paper_color = None + self._pixel_format = None + self._resolution = None + self._scale = None + self._use_anti_aliasing = None + self._use_gdi_emf_renderer = None + self._use_high_quality_rendering = None + self._vertical_resolution = None + self._tiff_binarization_method = None + self._tiff_compression = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if graphics_quality_options is not None: + self.graphics_quality_options = graphics_quality_options + if horizontal_resolution is not None: + self.horizontal_resolution = horizontal_resolution + if image_brightness is not None: + self.image_brightness = image_brightness + if image_color_mode is not None: + self.image_color_mode = image_color_mode + if image_contrast is not None: + self.image_contrast = image_contrast + if paper_color is not None: + self.paper_color = paper_color + if pixel_format is not None: + self.pixel_format = pixel_format + if resolution is not None: + self.resolution = resolution + if scale is not None: + self.scale = scale + if use_anti_aliasing is not None: + self.use_anti_aliasing = use_anti_aliasing + if use_gdi_emf_renderer is not None: + self.use_gdi_emf_renderer = use_gdi_emf_renderer + if use_high_quality_rendering is not None: + self.use_high_quality_rendering = use_high_quality_rendering + if vertical_resolution is not None: + self.vertical_resolution = vertical_resolution + if tiff_binarization_method is not None: + self.tiff_binarization_method = tiff_binarization_method + if tiff_compression is not None: + self.tiff_compression = tiff_compression + + @property + def color_mode(self): + """Gets the color_mode of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this TiffSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this TiffSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this TiffSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this TiffSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this TiffSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this TiffSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this TiffSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this TiffSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this TiffSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this TiffSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this TiffSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this TiffSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this TiffSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this TiffSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this TiffSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this TiffSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this TiffSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this TiffSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this TiffSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this TiffSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this TiffSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this TiffSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this TiffSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this TiffSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this TiffSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this TiffSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this TiffSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this TiffSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this TiffSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this TiffSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this TiffSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this TiffSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def graphics_quality_options(self): + """Gets the graphics_quality_options of this TiffSaveOptionsData. # noqa: E501 + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :return: The graphics_quality_options of this TiffSaveOptionsData. # noqa: E501 + :rtype: GraphicsQualityOptionsData + """ + return self._graphics_quality_options + + @graphics_quality_options.setter + def graphics_quality_options(self, graphics_quality_options): + """Sets the graphics_quality_options of this TiffSaveOptionsData. + + Allows to specify additional System.Drawing.Graphics quality options. # noqa: E501 + + :param graphics_quality_options: The graphics_quality_options of this TiffSaveOptionsData. # noqa: E501 + :type: GraphicsQualityOptionsData + """ + self._graphics_quality_options = graphics_quality_options + @property + def horizontal_resolution(self): + """Gets the horizontal_resolution of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The horizontal_resolution of this TiffSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._horizontal_resolution + + @horizontal_resolution.setter + def horizontal_resolution(self, horizontal_resolution): + """Sets the horizontal_resolution of this TiffSaveOptionsData. + + Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param horizontal_resolution: The horizontal_resolution of this TiffSaveOptionsData. # noqa: E501 + :type: float + """ + self._horizontal_resolution = horizontal_resolution + @property + def image_brightness(self): + """Gets the image_brightness of this TiffSaveOptionsData. # noqa: E501 + + Brightness of image # noqa: E501 + + :return: The image_brightness of this TiffSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_brightness + + @image_brightness.setter + def image_brightness(self, image_brightness): + """Sets the image_brightness of this TiffSaveOptionsData. + + Brightness of image # noqa: E501 + + :param image_brightness: The image_brightness of this TiffSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_brightness = image_brightness + @property + def image_color_mode(self): + """Gets the image_color_mode of this TiffSaveOptionsData. # noqa: E501 + + Color mode of image # noqa: E501 + + :return: The image_color_mode of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._image_color_mode + + @image_color_mode.setter + def image_color_mode(self, image_color_mode): + """Sets the image_color_mode of this TiffSaveOptionsData. + + Color mode of image # noqa: E501 + + :param image_color_mode: The image_color_mode of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._image_color_mode = image_color_mode + @property + def image_contrast(self): + """Gets the image_contrast of this TiffSaveOptionsData. # noqa: E501 + + Contrast of image # noqa: E501 + + :return: The image_contrast of this TiffSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._image_contrast + + @image_contrast.setter + def image_contrast(self, image_contrast): + """Sets the image_contrast of this TiffSaveOptionsData. + + Contrast of image # noqa: E501 + + :param image_contrast: The image_contrast of this TiffSaveOptionsData. # noqa: E501 + :type: float + """ + self._image_contrast = image_contrast + @property + def paper_color(self): + """Gets the paper_color of this TiffSaveOptionsData. # noqa: E501 + + Background (paper) color of image # noqa: E501 + + :return: The paper_color of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._paper_color + + @paper_color.setter + def paper_color(self, paper_color): + """Sets the paper_color of this TiffSaveOptionsData. + + Background (paper) color of image # noqa: E501 + + :param paper_color: The paper_color of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._paper_color = paper_color + @property + def pixel_format(self): + """Gets the pixel_format of this TiffSaveOptionsData. # noqa: E501 + + Pixel format of image # noqa: E501 + + :return: The pixel_format of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._pixel_format + + @pixel_format.setter + def pixel_format(self, pixel_format): + """Sets the pixel_format of this TiffSaveOptionsData. + + Pixel format of image # noqa: E501 + + :param pixel_format: The pixel_format of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._pixel_format = pixel_format + @property + def resolution(self): + """Gets the resolution of this TiffSaveOptionsData. # noqa: E501 + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The resolution of this TiffSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._resolution + + @resolution.setter + def resolution(self, resolution): + """Sets the resolution of this TiffSaveOptionsData. + + Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param resolution: The resolution of this TiffSaveOptionsData. # noqa: E501 + :type: float + """ + self._resolution = resolution + @property + def scale(self): + """Gets the scale of this TiffSaveOptionsData. # noqa: E501 + + Zoom factor of image # noqa: E501 + + :return: The scale of this TiffSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._scale + + @scale.setter + def scale(self, scale): + """Sets the scale of this TiffSaveOptionsData. + + Zoom factor of image # noqa: E501 + + :param scale: The scale of this TiffSaveOptionsData. # noqa: E501 + :type: float + """ + self._scale = scale + @property + def use_anti_aliasing(self): + """Gets the use_anti_aliasing of this TiffSaveOptionsData. # noqa: E501 + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :return: The use_anti_aliasing of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_anti_aliasing + + @use_anti_aliasing.setter + def use_anti_aliasing(self, use_anti_aliasing): + """Sets the use_anti_aliasing of this TiffSaveOptionsData. + + Determine whether or not to use anti-aliasing for rendering # noqa: E501 + + :param use_anti_aliasing: The use_anti_aliasing of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_anti_aliasing = use_anti_aliasing + @property + def use_gdi_emf_renderer(self): + """Gets the use_gdi_emf_renderer of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :return: The use_gdi_emf_renderer of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_gdi_emf_renderer + + @use_gdi_emf_renderer.setter + def use_gdi_emf_renderer(self, use_gdi_emf_renderer): + """Sets the use_gdi_emf_renderer of this TiffSaveOptionsData. + + Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. # noqa: E501 + + :param use_gdi_emf_renderer: The use_gdi_emf_renderer of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_gdi_emf_renderer = use_gdi_emf_renderer + @property + def use_high_quality_rendering(self): + """Gets the use_high_quality_rendering of this TiffSaveOptionsData. # noqa: E501 + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :return: The use_high_quality_rendering of this TiffSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_high_quality_rendering + + @use_high_quality_rendering.setter + def use_high_quality_rendering(self, use_high_quality_rendering): + """Sets the use_high_quality_rendering of this TiffSaveOptionsData. + + Determine whether or not to use high quality (i.e. slow) rendering algorithms # noqa: E501 + + :param use_high_quality_rendering: The use_high_quality_rendering of this TiffSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_high_quality_rendering = use_high_quality_rendering + @property + def vertical_resolution(self): + """Gets the vertical_resolution of this TiffSaveOptionsData. # noqa: E501 + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :return: The vertical_resolution of this TiffSaveOptionsData. # noqa: E501 + :rtype: float + """ + return self._vertical_resolution + + @vertical_resolution.setter + def vertical_resolution(self, vertical_resolution): + """Sets the vertical_resolution of this TiffSaveOptionsData. + + Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. # noqa: E501 + + :param vertical_resolution: The vertical_resolution of this TiffSaveOptionsData. # noqa: E501 + :type: float + """ + self._vertical_resolution = vertical_resolution + @property + def tiff_binarization_method(self): + """Gets the tiff_binarization_method of this TiffSaveOptionsData. # noqa: E501 + + Specifies method used while converting images to 1 bpp format. # noqa: E501 + + :return: The tiff_binarization_method of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._tiff_binarization_method + + @tiff_binarization_method.setter + def tiff_binarization_method(self, tiff_binarization_method): + """Sets the tiff_binarization_method of this TiffSaveOptionsData. + + Specifies method used while converting images to 1 bpp format. # noqa: E501 + + :param tiff_binarization_method: The tiff_binarization_method of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._tiff_binarization_method = tiff_binarization_method + @property + def tiff_compression(self): + """Gets the tiff_compression of this TiffSaveOptionsData. # noqa: E501 + + Type of compression. # noqa: E501 + + :return: The tiff_compression of this TiffSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._tiff_compression + + @tiff_compression.setter + def tiff_compression(self, tiff_compression): + """Sets the tiff_compression of this TiffSaveOptionsData. + + Type of compression. # noqa: E501 + + :param tiff_compression: The tiff_compression of this TiffSaveOptionsData. # noqa: E501 + :type: str + """ + self._tiff_compression = tiff_compression + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, TiffSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/watermark_text.py b/asposewordscloud/models/watermark_text.py new file mode 100644 index 00000000..33d87c93 --- /dev/null +++ b/asposewordscloud/models/watermark_text.py @@ -0,0 +1,150 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class WatermarkText(object): + """Class for insert watermark text request building. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'text': 'str', + 'rotation_angle': 'float' + } + + attribute_map = { + 'text': 'Text', + 'rotation_angle': 'RotationAngle' + } + + def __init__(self, text=None, rotation_angle=None): # noqa: E501 + """WatermarkText - a model defined in Swagger""" # noqa: E501 + + self._text = None + self._rotation_angle = None + self.discriminator = None + + if text is not None: + self.text = text + if rotation_angle is not None: + self.rotation_angle = rotation_angle + + @property + def text(self): + """Gets the text of this WatermarkText. # noqa: E501 + + The watermark text. # noqa: E501 + + :return: The text of this WatermarkText. # noqa: E501 + :rtype: str + """ + return self._text + + @text.setter + def text(self, text): + """Sets the text of this WatermarkText. + + The watermark text. # noqa: E501 + + :param text: The text of this WatermarkText. # noqa: E501 + :type: str + """ + self._text = text + @property + def rotation_angle(self): + """Gets the rotation_angle of this WatermarkText. # noqa: E501 + + The watermark rotation angle. # noqa: E501 + + :return: The rotation_angle of this WatermarkText. # noqa: E501 + :rtype: float + """ + return self._rotation_angle + + @rotation_angle.setter + def rotation_angle(self, rotation_angle): + """Sets the rotation_angle of this WatermarkText. + + The watermark rotation angle. # noqa: E501 + + :param rotation_angle: The rotation_angle of this WatermarkText. # noqa: E501 + :type: float + """ + if rotation_angle is None: + raise ValueError("Invalid value for `rotation_angle`, must not be `None`") # noqa: E501 + self._rotation_angle = rotation_angle + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, WatermarkText): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/word_ml_save_options_data.py b/asposewordscloud/models/word_ml_save_options_data.py new file mode 100644 index 00000000..243c9492 --- /dev/null +++ b/asposewordscloud/models/word_ml_save_options_data.py @@ -0,0 +1,356 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class WordMLSaveOptionsData(object): + """container class for wml save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'pretty_format': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'pretty_format': 'PrettyFormat' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, pretty_format=None): # noqa: E501 + """WordMLSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._pretty_format = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if pretty_format is not None: + self.pretty_format = pretty_format + + @property + def color_mode(self): + """Gets the color_mode of this WordMLSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this WordMLSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this WordMLSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this WordMLSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this WordMLSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this WordMLSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this WordMLSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this WordMLSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this WordMLSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this WordMLSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this WordMLSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this WordMLSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this WordMLSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this WordMLSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this WordMLSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this WordMLSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this WordMLSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this WordMLSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this WordMLSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this WordMLSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this WordMLSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this WordMLSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this WordMLSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this WordMLSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this WordMLSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this WordMLSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this WordMLSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this WordMLSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this WordMLSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this WordMLSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this WordMLSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this WordMLSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this WordMLSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this WordMLSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this WordMLSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this WordMLSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def pretty_format(self): + """Gets the pretty_format of this WordMLSaveOptionsData. # noqa: E501 + + Specifies whether or not use pretty formats output # noqa: E501 + + :return: The pretty_format of this WordMLSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._pretty_format + + @pretty_format.setter + def pretty_format(self, pretty_format): + """Sets the pretty_format of this WordMLSaveOptionsData. + + Specifies whether or not use pretty formats output # noqa: E501 + + :param pretty_format: The pretty_format of this WordMLSaveOptionsData. # noqa: E501 + :type: bool + """ + self._pretty_format = pretty_format + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, WordMLSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/words_api_error_response.py b/asposewordscloud/models/words_api_error_response.py new file mode 100644 index 00000000..0e0ddfb4 --- /dev/null +++ b/asposewordscloud/models/words_api_error_response.py @@ -0,0 +1,176 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class WordsApiErrorResponse(object): + """Response for Api error + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'code': 'int', + 'status': 'str', + 'message': 'str' + } + + attribute_map = { + 'code': 'Code', + 'status': 'Status', + 'message': 'Message' + } + + def __init__(self, code=None, status=None, message=None): # noqa: E501 + """WordsApiErrorResponse - a model defined in Swagger""" # noqa: E501 + + self._code = None + self._status = None + self._message = None + self.discriminator = None + + if code is not None: + self.code = code + if status is not None: + self.status = status + if message is not None: + self.message = message + + @property + def code(self): + """Gets the code of this WordsApiErrorResponse. # noqa: E501 + + Response status code. # noqa: E501 + + :return: The code of this WordsApiErrorResponse. # noqa: E501 + :rtype: int + """ + return self._code + + @code.setter + def code(self, code): + """Sets the code of this WordsApiErrorResponse. + + Response status code. # noqa: E501 + + :param code: The code of this WordsApiErrorResponse. # noqa: E501 + :type: int + """ + if code is None: + raise ValueError("Invalid value for `code`, must not be `None`") # noqa: E501 + self._code = code + @property + def status(self): + """Gets the status of this WordsApiErrorResponse. # noqa: E501 + + Response status. # noqa: E501 + + :return: The status of this WordsApiErrorResponse. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this WordsApiErrorResponse. + + Response status. # noqa: E501 + + :param status: The status of this WordsApiErrorResponse. # noqa: E501 + :type: str + """ + self._status = status + @property + def message(self): + """Gets the message of this WordsApiErrorResponse. # noqa: E501 + + Error message. # noqa: E501 + + :return: The message of this WordsApiErrorResponse. # noqa: E501 + :rtype: str + """ + return self._message + + @message.setter + def message(self, message): + """Sets the message of this WordsApiErrorResponse. + + Error message. # noqa: E501 + + :param message: The message of this WordsApiErrorResponse. # noqa: E501 + :type: str + """ + self._message = message + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, WordsApiErrorResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/words_api_link.py b/asposewordscloud/models/words_api_link.py new file mode 100644 index 00000000..1f1d1705 --- /dev/null +++ b/asposewordscloud/models/words_api_link.py @@ -0,0 +1,200 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class WordsApiLink(object): + """Provides information for the words api resource link. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'href': 'str', + 'rel': 'str', + 'type': 'str', + 'title': 'str' + } + + attribute_map = { + 'href': 'Href', + 'rel': 'Rel', + 'type': 'Type', + 'title': 'Title' + } + + def __init__(self, href=None, rel=None, type=None, title=None): # noqa: E501 + """WordsApiLink - a model defined in Swagger""" # noqa: E501 + + self._href = None + self._rel = None + self._type = None + self._title = None + self.discriminator = None + + if href is not None: + self.href = href + if rel is not None: + self.rel = rel + if type is not None: + self.type = type + if title is not None: + self.title = title + + @property + def href(self): + """Gets the href of this WordsApiLink. # noqa: E501 + + The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference # noqa: E501 + + :return: The href of this WordsApiLink. # noqa: E501 + :rtype: str + """ + return self._href + + @href.setter + def href(self, href): + """Sets the href of this WordsApiLink. + + The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference # noqa: E501 + + :param href: The href of this WordsApiLink. # noqa: E501 + :type: str + """ + self._href = href + @property + def rel(self): + """Gets the rel of this WordsApiLink. # noqa: E501 + + atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". # noqa: E501 + + :return: The rel of this WordsApiLink. # noqa: E501 + :rtype: str + """ + return self._rel + + @rel.setter + def rel(self, rel): + """Sets the rel of this WordsApiLink. + + atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". # noqa: E501 + + :param rel: The rel of this WordsApiLink. # noqa: E501 + :type: str + """ + self._rel = rel + @property + def type(self): + """Gets the type of this WordsApiLink. # noqa: E501 + + On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. # noqa: E501 + + :return: The type of this WordsApiLink. # noqa: E501 + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """Sets the type of this WordsApiLink. + + On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. # noqa: E501 + + :param type: The type of this WordsApiLink. # noqa: E501 + :type: str + """ + self._type = type + @property + def title(self): + """Gets the title of this WordsApiLink. # noqa: E501 + + The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. # noqa: E501 + + :return: The title of this WordsApiLink. # noqa: E501 + :rtype: str + """ + return self._title + + @title.setter + def title(self, title): + """Sets the title of this WordsApiLink. + + The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. # noqa: E501 + + :param title: The title of this WordsApiLink. # noqa: E501 + :type: str + """ + self._title = title + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, WordsApiLink): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/xaml_fixed_save_options_data.py b/asposewordscloud/models/xaml_fixed_save_options_data.py new file mode 100644 index 00000000..654fd631 --- /dev/null +++ b/asposewordscloud/models/xaml_fixed_save_options_data.py @@ -0,0 +1,538 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class XamlFixedSaveOptionsData(object): + """container class for xaml fixed save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'resources_folder': 'str', + 'resources_folder_alias': 'str' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'resources_folder': 'ResourcesFolder', + 'resources_folder_alias': 'ResourcesFolderAlias' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, resources_folder=None, resources_folder_alias=None): # noqa: E501 + """XamlFixedSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._resources_folder = None + self._resources_folder_alias = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if resources_folder is not None: + self.resources_folder = resources_folder + if resources_folder_alias is not None: + self.resources_folder_alias = resources_folder_alias + + @property + def color_mode(self): + """Gets the color_mode of this XamlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this XamlFixedSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this XamlFixedSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this XamlFixedSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this XamlFixedSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this XamlFixedSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this XamlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this XamlFixedSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this XamlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this XamlFixedSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this XamlFixedSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this XamlFixedSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this XamlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this XamlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this XamlFixedSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this XamlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this XamlFixedSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this XamlFixedSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this XamlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this XamlFixedSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this XamlFixedSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this XamlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this XamlFixedSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this XamlFixedSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this XamlFixedSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this XamlFixedSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this XamlFixedSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this XamlFixedSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this XamlFixedSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this XamlFixedSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this XamlFixedSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this XamlFixedSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this XamlFixedSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this XamlFixedSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this XamlFixedSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this XamlFixedSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this XamlFixedSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this XamlFixedSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this XamlFixedSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def resources_folder(self): + """Gets the resources_folder of this XamlFixedSaveOptionsData. # noqa: E501 + + Specifies the physical folder where resources (images and fonts) are saved when exporting a document to fixed page Xaml format. Default is null. # noqa: E501 + + :return: The resources_folder of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resources_folder + + @resources_folder.setter + def resources_folder(self, resources_folder): + """Sets the resources_folder of this XamlFixedSaveOptionsData. + + Specifies the physical folder where resources (images and fonts) are saved when exporting a document to fixed page Xaml format. Default is null. # noqa: E501 + + :param resources_folder: The resources_folder of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._resources_folder = resources_folder + @property + def resources_folder_alias(self): + """Gets the resources_folder_alias of this XamlFixedSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct image URIs written into an fixed page Xaml document. Default is null. # noqa: E501 + + :return: The resources_folder_alias of this XamlFixedSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._resources_folder_alias + + @resources_folder_alias.setter + def resources_folder_alias(self, resources_folder_alias): + """Sets the resources_folder_alias of this XamlFixedSaveOptionsData. + + Specifies the name of the folder used to construct image URIs written into an fixed page Xaml document. Default is null. # noqa: E501 + + :param resources_folder_alias: The resources_folder_alias of this XamlFixedSaveOptionsData. # noqa: E501 + :type: str + """ + self._resources_folder_alias = resources_folder_alias + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, XamlFixedSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/xaml_flow_save_options_data.py b/asposewordscloud/models/xaml_flow_save_options_data.py new file mode 100644 index 00000000..7db3f650 --- /dev/null +++ b/asposewordscloud/models/xaml_flow_save_options_data.py @@ -0,0 +1,382 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class XamlFlowSaveOptionsData(object): + """container class for xaml flow save options + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'images_folder': 'str', + 'images_folder_alias': 'str' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'images_folder': 'ImagesFolder', + 'images_folder_alias': 'ImagesFolderAlias' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, images_folder=None, images_folder_alias=None): # noqa: E501 + """XamlFlowSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._images_folder = None + self._images_folder_alias = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if images_folder is not None: + self.images_folder = images_folder + if images_folder_alias is not None: + self.images_folder_alias = images_folder_alias + + @property + def color_mode(self): + """Gets the color_mode of this XamlFlowSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this XamlFlowSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this XamlFlowSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this XamlFlowSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this XamlFlowSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this XamlFlowSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this XamlFlowSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this XamlFlowSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this XamlFlowSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this XamlFlowSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this XamlFlowSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this XamlFlowSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this XamlFlowSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this XamlFlowSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this XamlFlowSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this XamlFlowSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this XamlFlowSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this XamlFlowSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this XamlFlowSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this XamlFlowSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this XamlFlowSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this XamlFlowSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def images_folder(self): + """Gets the images_folder of this XamlFlowSaveOptionsData. # noqa: E501 + + Specifies the physical folder where images are saved when exporting # noqa: E501 + + :return: The images_folder of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder + + @images_folder.setter + def images_folder(self, images_folder): + """Sets the images_folder of this XamlFlowSaveOptionsData. + + Specifies the physical folder where images are saved when exporting # noqa: E501 + + :param images_folder: The images_folder of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder = images_folder + @property + def images_folder_alias(self): + """Gets the images_folder_alias of this XamlFlowSaveOptionsData. # noqa: E501 + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :return: The images_folder_alias of this XamlFlowSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._images_folder_alias + + @images_folder_alias.setter + def images_folder_alias(self, images_folder_alias): + """Sets the images_folder_alias of this XamlFlowSaveOptionsData. + + Specifies the name of the folder used to construct image URIs # noqa: E501 + + :param images_folder_alias: The images_folder_alias of this XamlFlowSaveOptionsData. # noqa: E501 + :type: str + """ + self._images_folder_alias = images_folder_alias + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, XamlFlowSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/xml_color.py b/asposewordscloud/models/xml_color.py new file mode 100644 index 00000000..79c31e49 --- /dev/null +++ b/asposewordscloud/models/xml_color.py @@ -0,0 +1,150 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class XmlColor(object): + """Utility class for serialization + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'web': 'str', + 'alpha': 'int' + } + + attribute_map = { + 'web': 'Web', + 'alpha': 'Alpha' + } + + def __init__(self, web=None, alpha=None): # noqa: E501 + """XmlColor - a model defined in Swagger""" # noqa: E501 + + self._web = None + self._alpha = None + self.discriminator = None + + if web is not None: + self.web = web + if alpha is not None: + self.alpha = alpha + + @property + def web(self): + """Gets the web of this XmlColor. # noqa: E501 + + HTML string color representation # noqa: E501 + + :return: The web of this XmlColor. # noqa: E501 + :rtype: str + """ + return self._web + + @web.setter + def web(self, web): + """Sets the web of this XmlColor. + + HTML string color representation # noqa: E501 + + :param web: The web of this XmlColor. # noqa: E501 + :type: str + """ + self._web = web + @property + def alpha(self): + """Gets the alpha of this XmlColor. # noqa: E501 + + Alpha component of color structure # noqa: E501 + + :return: The alpha of this XmlColor. # noqa: E501 + :rtype: int + """ + return self._alpha + + @alpha.setter + def alpha(self, alpha): + """Sets the alpha of this XmlColor. + + Alpha component of color structure # noqa: E501 + + :param alpha: The alpha of this XmlColor. # noqa: E501 + :type: int + """ + if alpha is None: + raise ValueError("Invalid value for `alpha`, must not be `None`") # noqa: E501 + self._alpha = alpha + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, XmlColor): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/models/xps_save_options_data.py b/asposewordscloud/models/xps_save_options_data.py new file mode 100644 index 00000000..1779fa32 --- /dev/null +++ b/asposewordscloud/models/xps_save_options_data.py @@ -0,0 +1,590 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +import pprint +import re # noqa: F401 + +import six + + +class XpsSaveOptionsData(object): + """Container class for xps save options. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'color_mode': 'str', + 'save_format': 'str', + 'file_name': 'str', + 'dml_rendering_mode': 'str', + 'dml_effects_rendering_mode': 'str', + 'zip_output': 'bool', + 'update_last_saved_time_property': 'bool', + 'update_sdt_content': 'bool', + 'update_fields': 'bool', + 'jpeg_quality': 'int', + 'metafile_rendering_options': 'MetafileRenderingOptionsData', + 'numeral_format': 'str', + 'optimize_output': 'bool', + 'page_count': 'int', + 'page_index': 'int', + 'bookmarks_outline_level': 'int', + 'headings_outline_levels': 'int', + 'outline_options': 'OutlineOptionsData', + 'use_book_fold_printing_settings': 'bool' + } + + attribute_map = { + 'color_mode': 'ColorMode', + 'save_format': 'SaveFormat', + 'file_name': 'FileName', + 'dml_rendering_mode': 'DmlRenderingMode', + 'dml_effects_rendering_mode': 'DmlEffectsRenderingMode', + 'zip_output': 'ZipOutput', + 'update_last_saved_time_property': 'UpdateLastSavedTimeProperty', + 'update_sdt_content': 'UpdateSdtContent', + 'update_fields': 'UpdateFields', + 'jpeg_quality': 'JpegQuality', + 'metafile_rendering_options': 'MetafileRenderingOptions', + 'numeral_format': 'NumeralFormat', + 'optimize_output': 'OptimizeOutput', + 'page_count': 'PageCount', + 'page_index': 'PageIndex', + 'bookmarks_outline_level': 'BookmarksOutlineLevel', + 'headings_outline_levels': 'HeadingsOutlineLevels', + 'outline_options': 'OutlineOptions', + 'use_book_fold_printing_settings': 'UseBookFoldPrintingSettings' + } + + def __init__(self, color_mode=None, save_format=None, file_name=None, dml_rendering_mode=None, dml_effects_rendering_mode=None, zip_output=None, update_last_saved_time_property=None, update_sdt_content=None, update_fields=None, jpeg_quality=None, metafile_rendering_options=None, numeral_format=None, optimize_output=None, page_count=None, page_index=None, bookmarks_outline_level=None, headings_outline_levels=None, outline_options=None, use_book_fold_printing_settings=None): # noqa: E501 + """XpsSaveOptionsData - a model defined in Swagger""" # noqa: E501 + + self._color_mode = None + self._save_format = None + self._file_name = None + self._dml_rendering_mode = None + self._dml_effects_rendering_mode = None + self._zip_output = None + self._update_last_saved_time_property = None + self._update_sdt_content = None + self._update_fields = None + self._jpeg_quality = None + self._metafile_rendering_options = None + self._numeral_format = None + self._optimize_output = None + self._page_count = None + self._page_index = None + self._bookmarks_outline_level = None + self._headings_outline_levels = None + self._outline_options = None + self._use_book_fold_printing_settings = None + self.discriminator = None + + if color_mode is not None: + self.color_mode = color_mode + if save_format is not None: + self.save_format = save_format + if file_name is not None: + self.file_name = file_name + if dml_rendering_mode is not None: + self.dml_rendering_mode = dml_rendering_mode + if dml_effects_rendering_mode is not None: + self.dml_effects_rendering_mode = dml_effects_rendering_mode + if zip_output is not None: + self.zip_output = zip_output + if update_last_saved_time_property is not None: + self.update_last_saved_time_property = update_last_saved_time_property + if update_sdt_content is not None: + self.update_sdt_content = update_sdt_content + if update_fields is not None: + self.update_fields = update_fields + if jpeg_quality is not None: + self.jpeg_quality = jpeg_quality + if metafile_rendering_options is not None: + self.metafile_rendering_options = metafile_rendering_options + if numeral_format is not None: + self.numeral_format = numeral_format + if optimize_output is not None: + self.optimize_output = optimize_output + if page_count is not None: + self.page_count = page_count + if page_index is not None: + self.page_index = page_index + if bookmarks_outline_level is not None: + self.bookmarks_outline_level = bookmarks_outline_level + if headings_outline_levels is not None: + self.headings_outline_levels = headings_outline_levels + if outline_options is not None: + self.outline_options = outline_options + if use_book_fold_printing_settings is not None: + self.use_book_fold_printing_settings = use_book_fold_printing_settings + + @property + def color_mode(self): + """Gets the color_mode of this XpsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :return: The color_mode of this XpsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._color_mode + + @color_mode.setter + def color_mode(self, color_mode): + """Sets the color_mode of this XpsSaveOptionsData. + + Gets or sets a value determining how colors are rendered. { Normal | Grayscale} # noqa: E501 + + :param color_mode: The color_mode of this XpsSaveOptionsData. # noqa: E501 + :type: str + """ + self._color_mode = color_mode + @property + def save_format(self): + """Gets the save_format of this XpsSaveOptionsData. # noqa: E501 + + format of save # noqa: E501 + + :return: The save_format of this XpsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._save_format + + @save_format.setter + def save_format(self, save_format): + """Sets the save_format of this XpsSaveOptionsData. + + format of save # noqa: E501 + + :param save_format: The save_format of this XpsSaveOptionsData. # noqa: E501 + :type: str + """ + self._save_format = save_format + @property + def file_name(self): + """Gets the file_name of this XpsSaveOptionsData. # noqa: E501 + + name of destination file # noqa: E501 + + :return: The file_name of this XpsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._file_name + + @file_name.setter + def file_name(self, file_name): + """Sets the file_name of this XpsSaveOptionsData. + + name of destination file # noqa: E501 + + :param file_name: The file_name of this XpsSaveOptionsData. # noqa: E501 + :type: str + """ + self._file_name = file_name + @property + def dml_rendering_mode(self): + """Gets the dml_rendering_mode of this XpsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :return: The dml_rendering_mode of this XpsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_rendering_mode + + @dml_rendering_mode.setter + def dml_rendering_mode(self, dml_rendering_mode): + """Sets the dml_rendering_mode of this XpsSaveOptionsData. + + Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } # noqa: E501 + + :param dml_rendering_mode: The dml_rendering_mode of this XpsSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_rendering_mode = dml_rendering_mode + @property + def dml_effects_rendering_mode(self): + """Gets the dml_effects_rendering_mode of this XpsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :return: The dml_effects_rendering_mode of this XpsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._dml_effects_rendering_mode + + @dml_effects_rendering_mode.setter + def dml_effects_rendering_mode(self, dml_effects_rendering_mode): + """Sets the dml_effects_rendering_mode of this XpsSaveOptionsData. + + Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } # noqa: E501 + + :param dml_effects_rendering_mode: The dml_effects_rendering_mode of this XpsSaveOptionsData. # noqa: E501 + :type: str + """ + self._dml_effects_rendering_mode = dml_effects_rendering_mode + @property + def zip_output(self): + """Gets the zip_output of this XpsSaveOptionsData. # noqa: E501 + + Controls zip output or not. Default value is false. # noqa: E501 + + :return: The zip_output of this XpsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._zip_output + + @zip_output.setter + def zip_output(self, zip_output): + """Sets the zip_output of this XpsSaveOptionsData. + + Controls zip output or not. Default value is false. # noqa: E501 + + :param zip_output: The zip_output of this XpsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._zip_output = zip_output + @property + def update_last_saved_time_property(self): + """Gets the update_last_saved_time_property of this XpsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :return: The update_last_saved_time_property of this XpsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_last_saved_time_property + + @update_last_saved_time_property.setter + def update_last_saved_time_property(self, update_last_saved_time_property): + """Sets the update_last_saved_time_property of this XpsSaveOptionsData. + + Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. # noqa: E501 + + :param update_last_saved_time_property: The update_last_saved_time_property of this XpsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_last_saved_time_property = update_last_saved_time_property + @property + def update_sdt_content(self): + """Gets the update_sdt_content of this XpsSaveOptionsData. # noqa: E501 + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :return: The update_sdt_content of this XpsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_sdt_content + + @update_sdt_content.setter + def update_sdt_content(self, update_sdt_content): + """Sets the update_sdt_content of this XpsSaveOptionsData. + + Gets or sets value determining whether content of is updated before saving. # noqa: E501 + + :param update_sdt_content: The update_sdt_content of this XpsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_sdt_content = update_sdt_content + @property + def update_fields(self): + """Gets the update_fields of this XpsSaveOptionsData. # noqa: E501 + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :return: The update_fields of this XpsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._update_fields + + @update_fields.setter + def update_fields(self, update_fields): + """Sets the update_fields of this XpsSaveOptionsData. + + Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true # noqa: E501 + + :param update_fields: The update_fields of this XpsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._update_fields = update_fields + @property + def jpeg_quality(self): + """Gets the jpeg_quality of this XpsSaveOptionsData. # noqa: E501 + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :return: The jpeg_quality of this XpsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._jpeg_quality + + @jpeg_quality.setter + def jpeg_quality(self, jpeg_quality): + """Sets the jpeg_quality of this XpsSaveOptionsData. + + Determines the quality of the JPEG images inside PDF document. # noqa: E501 + + :param jpeg_quality: The jpeg_quality of this XpsSaveOptionsData. # noqa: E501 + :type: int + """ + self._jpeg_quality = jpeg_quality + @property + def metafile_rendering_options(self): + """Gets the metafile_rendering_options of this XpsSaveOptionsData. # noqa: E501 + + Allows to specify metafile rendering options. # noqa: E501 + + :return: The metafile_rendering_options of this XpsSaveOptionsData. # noqa: E501 + :rtype: MetafileRenderingOptionsData + """ + return self._metafile_rendering_options + + @metafile_rendering_options.setter + def metafile_rendering_options(self, metafile_rendering_options): + """Sets the metafile_rendering_options of this XpsSaveOptionsData. + + Allows to specify metafile rendering options. # noqa: E501 + + :param metafile_rendering_options: The metafile_rendering_options of this XpsSaveOptionsData. # noqa: E501 + :type: MetafileRenderingOptionsData + """ + self._metafile_rendering_options = metafile_rendering_options + @property + def numeral_format(self): + """Gets the numeral_format of this XpsSaveOptionsData. # noqa: E501 + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :return: The numeral_format of this XpsSaveOptionsData. # noqa: E501 + :rtype: str + """ + return self._numeral_format + + @numeral_format.setter + def numeral_format(self, numeral_format): + """Sets the numeral_format of this XpsSaveOptionsData. + + Indicates the symbol set that is used to represent numbers while rendering to fixed page formats # noqa: E501 + + :param numeral_format: The numeral_format of this XpsSaveOptionsData. # noqa: E501 + :type: str + """ + self._numeral_format = numeral_format + @property + def optimize_output(self): + """Gets the optimize_output of this XpsSaveOptionsData. # noqa: E501 + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :return: The optimize_output of this XpsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._optimize_output + + @optimize_output.setter + def optimize_output(self, optimize_output): + """Sets the optimize_output of this XpsSaveOptionsData. + + Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. # noqa: E501 + + :param optimize_output: The optimize_output of this XpsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._optimize_output = optimize_output + @property + def page_count(self): + """Gets the page_count of this XpsSaveOptionsData. # noqa: E501 + + Determines number of pages to render # noqa: E501 + + :return: The page_count of this XpsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_count + + @page_count.setter + def page_count(self, page_count): + """Sets the page_count of this XpsSaveOptionsData. + + Determines number of pages to render # noqa: E501 + + :param page_count: The page_count of this XpsSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_count = page_count + @property + def page_index(self): + """Gets the page_index of this XpsSaveOptionsData. # noqa: E501 + + Determines 0-based index of the first page to render # noqa: E501 + + :return: The page_index of this XpsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._page_index + + @page_index.setter + def page_index(self, page_index): + """Sets the page_index of this XpsSaveOptionsData. + + Determines 0-based index of the first page to render # noqa: E501 + + :param page_index: The page_index of this XpsSaveOptionsData. # noqa: E501 + :type: int + """ + self._page_index = page_index + @property + def bookmarks_outline_level(self): + """Gets the bookmarks_outline_level of this XpsSaveOptionsData. # noqa: E501 + + Specifies the level in the XPS document outline at which to display Word bookmarks. # noqa: E501 + + :return: The bookmarks_outline_level of this XpsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._bookmarks_outline_level + + @bookmarks_outline_level.setter + def bookmarks_outline_level(self, bookmarks_outline_level): + """Sets the bookmarks_outline_level of this XpsSaveOptionsData. + + Specifies the level in the XPS document outline at which to display Word bookmarks. # noqa: E501 + + :param bookmarks_outline_level: The bookmarks_outline_level of this XpsSaveOptionsData. # noqa: E501 + :type: int + """ + self._bookmarks_outline_level = bookmarks_outline_level + @property + def headings_outline_levels(self): + """Gets the headings_outline_levels of this XpsSaveOptionsData. # noqa: E501 + + Specifies how many levels of headings (paragraphs formatted with the Heading styles) to include in the XPS document outline. # noqa: E501 + + :return: The headings_outline_levels of this XpsSaveOptionsData. # noqa: E501 + :rtype: int + """ + return self._headings_outline_levels + + @headings_outline_levels.setter + def headings_outline_levels(self, headings_outline_levels): + """Sets the headings_outline_levels of this XpsSaveOptionsData. + + Specifies how many levels of headings (paragraphs formatted with the Heading styles) to include in the XPS document outline. # noqa: E501 + + :param headings_outline_levels: The headings_outline_levels of this XpsSaveOptionsData. # noqa: E501 + :type: int + """ + self._headings_outline_levels = headings_outline_levels + @property + def outline_options(self): + """Gets the outline_options of this XpsSaveOptionsData. # noqa: E501 + + Allows to specify outline options # noqa: E501 + + :return: The outline_options of this XpsSaveOptionsData. # noqa: E501 + :rtype: OutlineOptionsData + """ + return self._outline_options + + @outline_options.setter + def outline_options(self, outline_options): + """Sets the outline_options of this XpsSaveOptionsData. + + Allows to specify outline options # noqa: E501 + + :param outline_options: The outline_options of this XpsSaveOptionsData. # noqa: E501 + :type: OutlineOptionsData + """ + self._outline_options = outline_options + @property + def use_book_fold_printing_settings(self): + """Gets the use_book_fold_printing_settings of this XpsSaveOptionsData. # noqa: E501 + + Determines whether the document should be saved using a booklet printing layout # noqa: E501 + + :return: The use_book_fold_printing_settings of this XpsSaveOptionsData. # noqa: E501 + :rtype: bool + """ + return self._use_book_fold_printing_settings + + @use_book_fold_printing_settings.setter + def use_book_fold_printing_settings(self, use_book_fold_printing_settings): + """Sets the use_book_fold_printing_settings of this XpsSaveOptionsData. + + Determines whether the document should be saved using a booklet printing layout # noqa: E501 + + :param use_book_fold_printing_settings: The use_book_fold_printing_settings of this XpsSaveOptionsData. # noqa: E501 + :type: bool + """ + self._use_book_fold_printing_settings = use_book_fold_printing_settings + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, XpsSaveOptionsData): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/asposewordscloud/rest.py b/asposewordscloud/rest.py new file mode 100644 index 00000000..3f8bcd2c --- /dev/null +++ b/asposewordscloud/rest.py @@ -0,0 +1,332 @@ +# coding: utf-8 +# ----------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# ----------------------------------------------------------------------------------- +from __future__ import absolute_import + +import io +import json +import logging +import re +import ssl + +import certifi +# python 2 and python 3 compatibility library +import six +from six.moves.urllib.parse import urlencode + +try: + import urllib3 +except ImportError: + raise ImportError('Swagger python client requires urllib3.') + + +logger = logging.getLogger(__name__) + + +class RESTResponse(io.IOBase): + + def __init__(self, resp): + self.urllib3_response = resp + self.status = resp.status + self.reason = resp.reason + self.data = resp.data + + def getheaders(self): + """Returns a dictionary of the response headers.""" + return self.urllib3_response.getheaders() + + def getheader(self, name, default=None): + """Returns a given response header.""" + return self.urllib3_response.getheader(name, default) + + +class RESTClientObject(object): + + def __init__(self, configuration, pools_size=4, maxsize=None): + # urllib3.PoolManager will pass all kw parameters to connectionpool + # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501 + # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501 + # maxsize is the number of requests to host that are allowed in parallel # noqa: E501 + # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501 + + # cert_reqs + if configuration.verify_ssl: + cert_reqs = ssl.CERT_REQUIRED + else: + cert_reqs = ssl.CERT_NONE + + # ca_certs + if configuration.ssl_ca_cert: + ca_certs = configuration.ssl_ca_cert + else: + # if not set certificate file, use Mozilla's root certificates. + ca_certs = certifi.where() + + addition_pool_args = {} + if configuration.assert_hostname is not None: + addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501 + + if maxsize is None: + if configuration.connection_pool_maxsize is not None: + maxsize = configuration.connection_pool_maxsize + else: + maxsize = 4 + + # https pool manager + if configuration.proxy: + self.pool_manager = urllib3.ProxyManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=configuration.cert_file, + key_file=configuration.key_file, + proxy_url=configuration.proxy, + **addition_pool_args + ) + else: + self.pool_manager = urllib3.PoolManager( + num_pools=pools_size, + maxsize=maxsize, + cert_reqs=cert_reqs, + ca_certs=ca_certs, + cert_file=configuration.cert_file, + key_file=configuration.key_file, + **addition_pool_args + ) + + def request(self, method, url, query_params=None, headers=None, + body=None, post_params=None, _preload_content=True, + _request_timeout=None): + """Perform requests. + + :param method: http request method + :param url: http request url + :param query_params: query parameters in the url + :param headers: http request headers + :param body: request json body, for `application/json` + :param post_params: request post parameters, + `application/x-www-form-urlencoded` + and `multipart/form-data` + :param _preload_content: if False, the urllib3.HTTPResponse object will + be returned without reading/decoding response + data. Default is True. + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + """ + method = method.upper() + assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT', + 'PATCH', 'OPTIONS'] + + if post_params and body: + raise ValueError( + "body parameter cannot be used with post_params parameter." + ) + + post_params = post_params or {} + headers = headers or {} + + timeout = None + if _request_timeout: + if isinstance(_request_timeout, (int, ) if six.PY3 else (int, long)): #pylint: disable=undefined-variable + timeout = urllib3.Timeout(total=_request_timeout) + elif (isinstance(_request_timeout, tuple) and + len(_request_timeout) == 2): + timeout = urllib3.Timeout( + connect=_request_timeout[0], read=_request_timeout[1]) + + if 'Content-Type' not in headers: + headers['Content-Type'] = 'application/json' + + try: + # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE` + if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']: + if query_params: + url += '?' + urlencode(query_params) + if not six.PY3: + url = url.encode('utf8') + if re.search('json', headers['Content-Type'], re.IGNORECASE): + request_body = '' + if body is not None: + request_body = json.dumps(body) + r = self.pool_manager.request( + method, url, + body=request_body, + preload_content=_preload_content, + timeout=timeout, + headers=headers) + elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501 + r = self.pool_manager.request( + method, url, + fields=post_params, + encode_multipart=False, + preload_content=_preload_content, + timeout=timeout, + headers=headers) + elif headers['Content-Type'] == 'multipart/form-data': + # must del headers['Content-Type'], or the correct + # Content-Type which generated by urllib3 will be + # overwritten. + del headers['Content-Type'] + r = self.pool_manager.request( + method, url, + fields=post_params, + encode_multipart=True, + preload_content=_preload_content, + timeout=timeout, + headers=headers) + # Pass a `string` parameter directly in the body to support + # other content types than Json when `body` argument is + # provided in serialized form + elif isinstance(body, str): + request_body = body + r = self.pool_manager.request( + method, url, + body=request_body, + preload_content=_preload_content, + timeout=timeout, + headers=headers) + else: + # Cannot generate the request from given parameters + msg = """Cannot prepare a request message for provided + arguments. Please check that your arguments match + declared content type.""" + raise ApiException(status=0, reason=msg) + # For `GET`, `HEAD` + else: + r = self.pool_manager.request(method, url, + fields=query_params, + preload_content=_preload_content, + timeout=timeout, + headers=headers) + except urllib3.exceptions.SSLError as e: + msg = "{0}\n{1}".format(type(e).__name__, str(e)) + raise ApiException(status=0, reason=msg) + + if _preload_content: + r = RESTResponse(r) + + # log response body + logger.debug("response body: %s", r.data) + + if not 200 <= r.status <= 299: + raise ApiException(http_resp=r) + + return r + + def GET(self, url, headers=None, query_params=None, _preload_content=True, + _request_timeout=None): + return self.request("GET", url, + headers=headers, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + query_params=query_params) + + def HEAD(self, url, headers=None, query_params=None, _preload_content=True, + _request_timeout=None): + return self.request("HEAD", url, + headers=headers, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + query_params=query_params) + + def OPTIONS(self, url, headers=None, query_params=None, post_params=None, + body=None, _preload_content=True, _request_timeout=None): + return self.request("OPTIONS", url, + headers=headers, + query_params=query_params, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + + def DELETE(self, url, headers=None, query_params=None, body=None, + _preload_content=True, _request_timeout=None): + return self.request("DELETE", url, + headers=headers, + query_params=query_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + + def POST(self, url, headers=None, query_params=None, post_params=None, + body=None, _preload_content=True, _request_timeout=None): + return self.request("POST", url, + headers=headers, + query_params=query_params, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + + def PUT(self, url, headers=None, query_params=None, post_params=None, + body=None, _preload_content=True, _request_timeout=None): + return self.request("PUT", url, + headers=headers, + query_params=query_params, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + + def PATCH(self, url, headers=None, query_params=None, post_params=None, + body=None, _preload_content=True, _request_timeout=None): + return self.request("PATCH", url, + headers=headers, + query_params=query_params, + post_params=post_params, + _preload_content=_preload_content, + _request_timeout=_request_timeout, + body=body) + + +class ApiException(Exception): + + def __init__(self, status=None, reason=None, http_resp=None): + if http_resp: + self.status = http_resp.status + self.reason = http_resp.reason + self.body = http_resp.data + self.headers = http_resp.getheaders() + else: + self.status = status + self.reason = reason + self.body = None + self.headers = None + + def __str__(self): + """Custom error messages for exception""" + error_message = "({0})\n"\ + "Reason: {1}\n".format(self.status, self.reason) + if self.headers: + error_message += "HTTP response headers: {0}\n".format( + self.headers) + + if self.body: + error_message += "HTTP response body: {0}\n".format(self.body) + + return error_message diff --git a/docs/AsposeResponse.md b/docs/AsposeResponse.md new file mode 100644 index 00000000..277699b4 --- /dev/null +++ b/docs/AsposeResponse.md @@ -0,0 +1,11 @@ +# AsposeResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AvailableFontsResponse.md b/docs/AvailableFontsResponse.md new file mode 100644 index 00000000..0f3c6ca4 --- /dev/null +++ b/docs/AvailableFontsResponse.md @@ -0,0 +1,14 @@ +# AvailableFontsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**additional_fonts** | [**list[FontInfo]**](FontInfo.md) | The list of addititional fonts, provided by aspose team | [optional] +**custom_fonts** | [**list[FontInfo]**](FontInfo.md) | Custom user fonts (from user file storage). To use them, you should specify \"fontsLocation\" parameter in any request | [optional] +**system_fonts** | [**list[FontInfo]**](FontInfo.md) | The list of system fonts, availiable on the server | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BmpSaveOptionsData.md b/docs/BmpSaveOptionsData.md new file mode 100644 index 00000000..f8a88b9c --- /dev/null +++ b/docs/BmpSaveOptionsData.md @@ -0,0 +1,37 @@ +# BmpSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Bookmark.md b/docs/Bookmark.md new file mode 100644 index 00000000..5df45780 --- /dev/null +++ b/docs/Bookmark.md @@ -0,0 +1,12 @@ +# Bookmark + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**name** | **str** | Gets or sets the name of the bookmark. | [optional] +**text** | **str** | Gets or sets the text enclosed in the bookmark. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BookmarkData.md b/docs/BookmarkData.md new file mode 100644 index 00000000..b79929fb --- /dev/null +++ b/docs/BookmarkData.md @@ -0,0 +1,11 @@ +# BookmarkData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Gets or sets the name of the bookmark. | [optional] +**text** | **str** | Gets or sets the text enclosed in the bookmark. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BookmarkResponse.md b/docs/BookmarkResponse.md new file mode 100644 index 00000000..b46babe8 --- /dev/null +++ b/docs/BookmarkResponse.md @@ -0,0 +1,12 @@ +# BookmarkResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**bookmark** | [**Bookmark**](Bookmark.md) | Bookmark. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Bookmarks.md b/docs/Bookmarks.md new file mode 100644 index 00000000..def6b320 --- /dev/null +++ b/docs/Bookmarks.md @@ -0,0 +1,11 @@ +# Bookmarks + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**bookmark_list** | [**list[Bookmark]**](Bookmark.md) | Array of bookmarks. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BookmarksOutlineLevelData.md b/docs/BookmarksOutlineLevelData.md new file mode 100644 index 00000000..9c30a139 --- /dev/null +++ b/docs/BookmarksOutlineLevelData.md @@ -0,0 +1,11 @@ +# BookmarksOutlineLevelData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Specify the bookmark's name | [optional] +**bookmarks_outline_level** | **int** | Specify the bookmark's level | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BookmarksResponse.md b/docs/BookmarksResponse.md new file mode 100644 index 00000000..fd4e5e17 --- /dev/null +++ b/docs/BookmarksResponse.md @@ -0,0 +1,12 @@ +# BookmarksResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**bookmarks** | [**Bookmarks**](Bookmarks.md) | Bookmarks which are contained in document. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Border.md b/docs/Border.md new file mode 100644 index 00000000..1aa7c874 --- /dev/null +++ b/docs/Border.md @@ -0,0 +1,16 @@ +# Border + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**border_type** | **str** | Gets or sets the border type. | [optional] +**color** | [**XmlColor**](XmlColor.md) | Gets or sets the border color. | [optional] +**distance_from_text** | **float** | Gets or sets distance of the border from text or from the page edge in points. | [optional] +**line_style** | **str** | Gets or sets the border style. | [optional] +**line_width** | **float** | Gets or sets the border width in points. | [optional] +**shadow** | **bool** | Gets or sets a value indicating whether the border has a shadow. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BorderResponse.md b/docs/BorderResponse.md new file mode 100644 index 00000000..d91dd6e4 --- /dev/null +++ b/docs/BorderResponse.md @@ -0,0 +1,12 @@ +# BorderResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**border** | [**Border**](Border.md) | Table. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BordersCollection.md b/docs/BordersCollection.md new file mode 100644 index 00000000..dabfbf47 --- /dev/null +++ b/docs/BordersCollection.md @@ -0,0 +1,11 @@ +# BordersCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[Border]**](Border.md) | Collection of comments | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/BordersResponse.md b/docs/BordersResponse.md new file mode 100644 index 00000000..c3fc26a4 --- /dev/null +++ b/docs/BordersResponse.md @@ -0,0 +1,12 @@ +# BordersResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**borders** | [**BordersCollection**](BordersCollection.md) | Table. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ClassificationResponse.md b/docs/ClassificationResponse.md new file mode 100644 index 00000000..1c04f186 --- /dev/null +++ b/docs/ClassificationResponse.md @@ -0,0 +1,14 @@ +# ClassificationResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**best_class_name** | **str** | Best class name. | [optional] +**best_class_probability** | **float** | Best class probability. | [optional] +**best_results** | [**list[ClassificationResult]**](ClassificationResult.md) | Array of best classes results. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ClassificationResult.md b/docs/ClassificationResult.md new file mode 100644 index 00000000..4904bd48 --- /dev/null +++ b/docs/ClassificationResult.md @@ -0,0 +1,11 @@ +# ClassificationResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**class_name** | **str** | Gets or sets the name of the class. | [optional] +**class_probability** | **float** | Gets or sets the probability of class. | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Comment.md b/docs/Comment.md new file mode 100644 index 00000000..4e622794 --- /dev/null +++ b/docs/Comment.md @@ -0,0 +1,17 @@ +# Comment + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**author** | **str** | Returns or sets the author name for a comment. | [optional] +**content** | [**StoryChildNodes**](StoryChildNodes.md) | Content of comment | [optional] +**date_time** | **datetime** | Gets the date and time that the comment was made. | [optional] +**initial** | **str** | Returns or sets the initials of the user associated with a specific comment. | [optional] +**range_end** | [**DocumentPosition**](DocumentPosition.md) | Link to comment range end node. | [optional] +**range_start** | [**DocumentPosition**](DocumentPosition.md) | Link to comment range start node. | [optional] +**text** | **str** | This is a convenience property that allows to easily get or set text of the comment. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CommentLink.md b/docs/CommentLink.md new file mode 100644 index 00000000..5a3411d8 --- /dev/null +++ b/docs/CommentLink.md @@ -0,0 +1,10 @@ +# CommentLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CommentResponse.md b/docs/CommentResponse.md new file mode 100644 index 00000000..9f5a12db --- /dev/null +++ b/docs/CommentResponse.md @@ -0,0 +1,12 @@ +# CommentResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**comment** | [**Comment**](Comment.md) | Comment information | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CommentsCollection.md b/docs/CommentsCollection.md new file mode 100644 index 00000000..54b3e018 --- /dev/null +++ b/docs/CommentsCollection.md @@ -0,0 +1,11 @@ +# CommentsCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**comment_list** | [**list[Comment]**](Comment.md) | Collection of comments | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CommentsResponse.md b/docs/CommentsResponse.md new file mode 100644 index 00000000..0db535de --- /dev/null +++ b/docs/CommentsResponse.md @@ -0,0 +1,12 @@ +# CommentsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**comments** | [**CommentsCollection**](CommentsCollection.md) | Collection of comments. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CompareData.md b/docs/CompareData.md new file mode 100644 index 00000000..c55439ec --- /dev/null +++ b/docs/CompareData.md @@ -0,0 +1,12 @@ +# CompareData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**comparing_with_document** | **str** | Path to document to compare at the server. | [optional] +**author** | **str** | Initials of the author to use for revisions. | [optional] +**date_time** | **datetime** | The date and time to use for revisions. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocSaveOptionsData.md b/docs/DocSaveOptionsData.md new file mode 100644 index 00000000..bcaa0ffb --- /dev/null +++ b/docs/DocSaveOptionsData.md @@ -0,0 +1,20 @@ +# DocSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**password** | **str** | Password | [optional] +**save_routing_slip** | **bool** | Determine whether or not save RoutingSlip data saved to output document | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Document.md b/docs/Document.md new file mode 100644 index 00000000..f29cf701 --- /dev/null +++ b/docs/Document.md @@ -0,0 +1,15 @@ +# Document + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**links** | [**list[Link]**](Link.md) | A list of links that originate from this document. | [optional] +**file_name** | **str** | Gets the name of the file. | [optional] +**source_format** | **str** | Gets the original format of the document. | +**is_encrypted** | **bool** | Returns true if the document is encrypted and requires a password to open. | +**is_signed** | **bool** | Returns true if the document contains a digital signature. This property merely informs that a digital signature is present on a document, but it does not specify whether the signature is valid or not. | +**document_properties** | [**DocumentProperties**](DocumentProperties.md) | Returns document properties. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentEntry.md b/docs/DocumentEntry.md new file mode 100644 index 00000000..3070b21e --- /dev/null +++ b/docs/DocumentEntry.md @@ -0,0 +1,11 @@ +# DocumentEntry + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**href** | **str** | Path to document to append at the server. | [optional] +**import_format_mode** | **str** | Defines which formatting will be used: appended or destination document.Can be KeepSourceFormatting or UseDestinationStyles. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentEntryList.md b/docs/DocumentEntryList.md new file mode 100644 index 00000000..8857593a --- /dev/null +++ b/docs/DocumentEntryList.md @@ -0,0 +1,10 @@ +# DocumentEntryList + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**document_entries** | [**list[DocumentEntry]**](DocumentEntry.md) | List of documents. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentPosition.md b/docs/DocumentPosition.md new file mode 100644 index 00000000..e6596a11 --- /dev/null +++ b/docs/DocumentPosition.md @@ -0,0 +1,11 @@ +# DocumentPosition + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**node** | [**NodeLink**](NodeLink.md) | Link to node. | [optional] +**offset** | **int** | Offset into the node. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentProperties.md b/docs/DocumentProperties.md new file mode 100644 index 00000000..5749589b --- /dev/null +++ b/docs/DocumentProperties.md @@ -0,0 +1,11 @@ +# DocumentProperties + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[DocumentProperty]**](DocumentProperty.md) | Collection of document properties. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentPropertiesResponse.md b/docs/DocumentPropertiesResponse.md new file mode 100644 index 00000000..f83f501e --- /dev/null +++ b/docs/DocumentPropertiesResponse.md @@ -0,0 +1,12 @@ +# DocumentPropertiesResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document_properties** | [**DocumentProperties**](DocumentProperties.md) | Collection of document properties. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentProperty.md b/docs/DocumentProperty.md new file mode 100644 index 00000000..c39e7134 --- /dev/null +++ b/docs/DocumentProperty.md @@ -0,0 +1,13 @@ +# DocumentProperty + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**built_in** | **bool** | Flag indicates whether the property is built-in or not. If true the property is built-in, if false the property is custom. | [optional] +**name** | **str** | Name of the document property. | [optional] +**value** | **str** | string value of the document property. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentPropertyResponse.md b/docs/DocumentPropertyResponse.md new file mode 100644 index 00000000..079924ec --- /dev/null +++ b/docs/DocumentPropertyResponse.md @@ -0,0 +1,12 @@ +# DocumentPropertyResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document_property** | [**DocumentProperty**](DocumentProperty.md) | Document property. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentResponse.md b/docs/DocumentResponse.md new file mode 100644 index 00000000..00e0ddf0 --- /dev/null +++ b/docs/DocumentResponse.md @@ -0,0 +1,12 @@ +# DocumentResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document** | [**Document**](Document.md) | Document description. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DocumentStatData.md b/docs/DocumentStatData.md new file mode 100644 index 00000000..06b72452 --- /dev/null +++ b/docs/DocumentStatData.md @@ -0,0 +1,14 @@ +# DocumentStatData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**word_count** | **int** | Total count of words in the document | +**paragraph_count** | **int** | Total count of paragraphs in the document | +**page_count** | **int** | Total count of pages in the document | +**footnotes_stat_data** | [**FootnotesStatData**](FootnotesStatData.md) | Detailed statistics of footnotes | [optional] +**page_stat_data** | [**list[PageStatData]**](PageStatData.md) | Detailed statistics of all pages | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DownsampleOptionsData.md b/docs/DownsampleOptionsData.md new file mode 100644 index 00000000..5568dafb --- /dev/null +++ b/docs/DownsampleOptionsData.md @@ -0,0 +1,12 @@ +# DownsampleOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**downsample_images** | **bool** | Specifies whether images should be downsampled. | [optional] +**resolution** | **int** | Specifies the resolution in pixels per inch which the images should be downsampled to. | [optional] +**resolution_threshold** | **int** | Specifies the threshold resolution in pixels per inch. If resolution of an image in the document is less than threshold value, the downsampling algorithm will not be applied. A value of 0 means the threshold check is not used and all images that can be reduced in size are downsampled. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DrawingObject.md b/docs/DrawingObject.md new file mode 100644 index 00000000..d6c89ce3 --- /dev/null +++ b/docs/DrawingObject.md @@ -0,0 +1,21 @@ +# DrawingObject + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**height** | **float** | Height of the drawing object in points. | [optional] +**image_data_link** | [**WordsApiLink**](WordsApiLink.md) | Link to image data. Can be null if shape does not have an image. | [optional] +**left** | **float** | Distance in points from the origin to the left side of the image. | [optional] +**ole_data_link** | [**WordsApiLink**](WordsApiLink.md) | Link to ole object. Can be null if shape does not have ole data. | [optional] +**relative_horizontal_position** | **str** | Specifies where the distance to the image is measured from. | [optional] +**relative_vertical_position** | **str** | Specifies where the distance to the image measured from. | [optional] +**render_links** | [**list[WordsApiLink]**](WordsApiLink.md) | A list of links that originate from this . | [optional] +**top** | **float** | Distance in points from the origin to the top side of the image. | [optional] +**width** | **float** | Width of the drawing objects in points. | [optional] +**wrap_type** | **str** | Specifies how to wrap text around the image. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DrawingObjectCollection.md b/docs/DrawingObjectCollection.md new file mode 100644 index 00000000..006491b2 --- /dev/null +++ b/docs/DrawingObjectCollection.md @@ -0,0 +1,11 @@ +# DrawingObjectCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[LinkElement]**](LinkElement.md) | Collection of DrawingObjects links | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DrawingObjectLink.md b/docs/DrawingObjectLink.md new file mode 100644 index 00000000..078aba88 --- /dev/null +++ b/docs/DrawingObjectLink.md @@ -0,0 +1,11 @@ +# DrawingObjectLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DrawingObjectResponse.md b/docs/DrawingObjectResponse.md new file mode 100644 index 00000000..38f6c0c1 --- /dev/null +++ b/docs/DrawingObjectResponse.md @@ -0,0 +1,12 @@ +# DrawingObjectResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**drawing_object** | [**DrawingObject**](DrawingObject.md) | Drawing object. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DrawingObjectsResponse.md b/docs/DrawingObjectsResponse.md new file mode 100644 index 00000000..11cf2359 --- /dev/null +++ b/docs/DrawingObjectsResponse.md @@ -0,0 +1,12 @@ +# DrawingObjectsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**drawing_objects** | [**DrawingObjectCollection**](DrawingObjectCollection.md) | Collection of drawing objects. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/EmfSaveOptionsData.md b/docs/EmfSaveOptionsData.md new file mode 100644 index 00000000..241917a3 --- /dev/null +++ b/docs/EmfSaveOptionsData.md @@ -0,0 +1,37 @@ +# EmfSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/EpubSaveOptionsData.md b/docs/EpubSaveOptionsData.md new file mode 100644 index 00000000..66b30670 --- /dev/null +++ b/docs/EpubSaveOptionsData.md @@ -0,0 +1,57 @@ +# EpubSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**allow_negative_indent** | **bool** | Specifies whether negative left and right indents of paragraphs are allowed (not normalized) | [optional] +**css_class_name_prefix** | **str** | Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. | [optional] +**css_style_sheet_file_name** | **str** | Specifies the name of the CSS file written when the document is exported to HTML | [optional] +**css_style_sheet_type** | **str** | Specifies how CSS styles are exported | [optional] +**document_split_criteria** | **str** | Specifies how the document should be split when saving | [optional] +**document_split_heading_level** | **int** | Specifies the maximum level of headings at which to split the document | [optional] +**encoding** | **str** | Specifies the encoding to use when exporting | [optional] +**export_document_properties** | **bool** | Specifies whether to export built-in and custom document properties | [optional] +**export_drop_down_form_field_as_text** | **bool** | Controls how drop-down form fields are saved to HTML. Default value is false. | [optional] +**export_font_resources** | **bool** | Specifies whether font resources should be exported | [optional] +**export_fonts_as_base64** | **bool** | Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. | [optional] +**export_headers_footers_mode** | **str** | Specifies how headers and footers are output | [optional] +**export_images_as_base64** | **bool** | Specifies whether images are saved in Base64 format | [optional] +**export_language_information** | **bool** | Specifies whether language information is exported | [optional] +**export_list_labels** | **str** | Controls how list labels are output | [optional] +**export_original_url_for_linked_images** | **bool** | Specifies whether original URL should be used as the URL of the linked images. Default value is false. | [optional] +**export_page_margins** | **bool** | Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. | [optional] +**export_page_setup** | **bool** | Specifies whether page setup is exported | [optional] +**export_relative_font_size** | **bool** | Specifies whether font sizes should be output in relative units when saving | [optional] +**export_roundtrip_information** | **bool** | Specifies whether to write the roundtrip information when saving to HTML Default value is true. | [optional] +**export_text_box_as_svg** | **bool** | Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. | [optional] +**export_text_input_form_field_as_text** | **bool** | Controls how text input form fields are saved | [optional] +**export_toc_page_numbers** | **bool** | Specifies whether to write page numbers to table of contents when saving | [optional] +**export_xhtml_transitional** | **bool** | Specifies whether to write the DOCTYPE declaration when saving | [optional] +**font_resources_subsetting_size_threshold** | **int** | Controls which font resources need subsetting when saving | [optional] +**fonts_folder** | **str** | Specifies the physical folder where fonts are saved when exporting a document | [optional] +**fonts_folder_alias** | **str** | Specifies the name of the folder used to construct font URIs | [optional] +**html_version** | **str** | Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. | [optional] +**image_resolution** | **int** | Specifies the output resolution for images when exporting | [optional] +**images_folder** | **str** | Specifies the physical folder where images are saved when exporting a document | [optional] +**images_folder_alias** | **str** | Specifies the name of the folder used to construct image URIs | [optional] +**metafile_format** | **str** | Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. | [optional] +**office_math_output_mode** | **str** | Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] +**resource_folder** | **str** | Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. | [optional] +**resource_folder_alias** | **str** | Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. | [optional] +**scale_image_to_shape_size** | **bool** | Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting | [optional] +**table_width_output_mode** | **str** | Controls how table, row and cell widths are exported | [optional] +**epub_navigation_map_level** | **int** | Specifies the maximum level of headings populated to the navigation map when exporting | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Field.md b/docs/Field.md new file mode 100644 index 00000000..783bb9f1 --- /dev/null +++ b/docs/Field.md @@ -0,0 +1,14 @@ +# Field + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**field_code** | **str** | Field code | [optional] +**locale_id** | **str** | Gets or sets LCID of the field. | [optional] +**result** | **str** | Field result | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FieldCollection.md b/docs/FieldCollection.md new file mode 100644 index 00000000..4e950804 --- /dev/null +++ b/docs/FieldCollection.md @@ -0,0 +1,11 @@ +# FieldCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[Field]**](Field.md) | Collection of fields | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FieldLink.md b/docs/FieldLink.md new file mode 100644 index 00000000..07b2a413 --- /dev/null +++ b/docs/FieldLink.md @@ -0,0 +1,12 @@ +# FieldLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**field_code** | **str** | Field code | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FieldNames.md b/docs/FieldNames.md new file mode 100644 index 00000000..286edb90 --- /dev/null +++ b/docs/FieldNames.md @@ -0,0 +1,11 @@ +# FieldNames + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**names** | **list[str]** | Collection of fields names. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FieldNamesResponse.md b/docs/FieldNamesResponse.md new file mode 100644 index 00000000..0a096acb --- /dev/null +++ b/docs/FieldNamesResponse.md @@ -0,0 +1,12 @@ +# FieldNamesResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**field_names** | [**FieldNames**](FieldNames.md) | Collection of mail merge fields. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FieldResponse.md b/docs/FieldResponse.md new file mode 100644 index 00000000..e737f100 --- /dev/null +++ b/docs/FieldResponse.md @@ -0,0 +1,12 @@ +# FieldResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**field** | [**Field**](Field.md) | Field information | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FieldsResponse.md b/docs/FieldsResponse.md new file mode 100644 index 00000000..e201f0e4 --- /dev/null +++ b/docs/FieldsResponse.md @@ -0,0 +1,12 @@ +# FieldsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**fields** | [**FieldCollection**](FieldCollection.md) | Collection of fields. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FileLink.md b/docs/FileLink.md new file mode 100644 index 00000000..a0c7f8ca --- /dev/null +++ b/docs/FileLink.md @@ -0,0 +1,13 @@ +# FileLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**href** | **str** | The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference | [optional] +**rel** | **str** | atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". | [optional] +**type** | **str** | On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. | [optional] +**title** | **str** | The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FixedPageSaveOptionsData.md b/docs/FixedPageSaveOptionsData.md new file mode 100644 index 00000000..b411d514 --- /dev/null +++ b/docs/FixedPageSaveOptionsData.md @@ -0,0 +1,24 @@ +# FixedPageSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Font.md b/docs/Font.md new file mode 100644 index 00000000..c8a8ec9f --- /dev/null +++ b/docs/Font.md @@ -0,0 +1,50 @@ +# Font + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**all_caps** | **bool** | True if the font is formatted as all capital letters. | [optional] +**bidi** | **bool** | Specifies whether the contents of this run shall have right-to-left characteristics. | [optional] +**bold** | **bool** | True if the font is formatted as bold. | [optional] +**bold_bi** | **bool** | True if the right-to-left text is formatted as bold. | [optional] +**border** | [**Border**](Border.md) | Border object that specifies border for the font. | [optional] +**color** | [**XmlColor**](XmlColor.md) | Gets or sets the color of the font. | [optional] +**complex_script** | **bool** | Specifies whether the contents of this run shall be treated as complex script text regardless of their Unicode character values when determining the formatting for this run. | [optional] +**double_strike_through** | **bool** | True if the font is formatted as double strikethrough text. | [optional] +**emboss** | **bool** | True if the font is formatted as embossed. | [optional] +**engrave** | **bool** | True if the font is formatted as engraved. | [optional] +**hidden** | **bool** | True if the font is formatted as hidden text. | [optional] +**highlight_color** | [**XmlColor**](XmlColor.md) | Gets or sets the highlight (marker) color. | [optional] +**italic** | **bool** | True if the font is formatted as italic. | [optional] +**italic_bi** | **bool** | True if the right-to-left text is formatted as italic. | [optional] +**kerning** | **float** | Gets or sets the font size at which kerning starts. | [optional] +**locale_id** | **int** | Gets or sets the locale identifier (language) of the formatted characters. | [optional] +**locale_id_bi** | **int** | Gets or sets the locale identifier (language) of the formatted right-to-left characters. | [optional] +**locale_id_far_east** | **int** | Gets or sets the locale identifier (language) of the formatted Asian characters. | [optional] +**name** | **str** | Gets or sets the name of the font | [optional] +**name_ascii** | **str** | Returns or sets the font used for Latin text (characters with character codes from 0 (zero) through 127). | [optional] +**name_bi** | **str** | Returns or sets the name of the font in a right-to-left language document. | [optional] +**name_far_east** | **str** | Returns or sets an East Asian font name. | [optional] +**name_other** | **str** | Returns or sets the font used for characters with character codes from 128 through 255. | [optional] +**no_proofing** | **bool** | True when the formatted characters are not to be spell checked. | [optional] +**outline** | **bool** | True if the font is formatted as outline. | [optional] +**position** | **float** | Gets or sets the position of text (in points) relative to the base line. A positive number raises the text, and a negative number lowers it. | [optional] +**scaling** | **int** | Gets or sets character width scaling in percent. | [optional] +**shadow** | **bool** | True if the font is formatted as shadowed. | [optional] +**size** | **float** | Gets or sets the font size in points. | [optional] +**size_bi** | **float** | Gets or sets the font size in points used in a right-to-left document. | [optional] +**small_caps** | **bool** | True if the font is formatted as small capital letters. | [optional] +**spacing** | **float** | Returns or sets the spacing (in points) between characters. | [optional] +**strike_through** | **bool** | True if the font is formatted as strikethrough text. | [optional] +**style_identifier** | **str** | Gets or sets the locale independent style identifier of the character style applied to this formatting. | [optional] +**style_name** | **str** | Gets or sets the name of the character style applied to this formatting. | [optional] +**subscript** | **bool** | True if the font is formatted as subscript. | [optional] +**superscript** | **bool** | True if the font is formatted as superscript. | [optional] +**text_effect** | **str** | Gets or sets the font animation effect. | [optional] +**underline** | **str** | Gets or sets the type of underline applied to the font. | [optional] +**underline_color** | [**XmlColor**](XmlColor.md) | Gets or sets the color of the underline applied to the font. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FontInfo.md b/docs/FontInfo.md new file mode 100644 index 00000000..ebfab1f8 --- /dev/null +++ b/docs/FontInfo.md @@ -0,0 +1,13 @@ +# FontInfo + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**font_family_name** | **str** | Family name of the font. | [optional] +**full_font_name** | **str** | Full name of the font. | [optional] +**version** | **str** | Version string of the font. | [optional] +**file_path** | **str** | Path to the font file if any. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FontResponse.md b/docs/FontResponse.md new file mode 100644 index 00000000..cb47f0de --- /dev/null +++ b/docs/FontResponse.md @@ -0,0 +1,12 @@ +# FontResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**font** | [**Font**](Font.md) | Font | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Footnote.md b/docs/Footnote.md new file mode 100644 index 00000000..64f99a15 --- /dev/null +++ b/docs/Footnote.md @@ -0,0 +1,16 @@ +# Footnote + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**content** | [**StoryChildNodes**](StoryChildNodes.md) | Content of footnote. | [optional] +**footnote_type** | **str** | Returns a value that specifies whether this is a footnote or endnote. | [optional] +**position** | [**DocumentPosition**](DocumentPosition.md) | Link to comment range start node. | [optional] +**reference_mark** | **str** | Gets/sets custom reference mark to be used for this footnote. Default value is , meaning auto-numbered footnotes are used. | [optional] +**text** | **str** | This is a convenience property that allows to easily get or set text of the footnote. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FootnoteCollection.md b/docs/FootnoteCollection.md new file mode 100644 index 00000000..22da3bb5 --- /dev/null +++ b/docs/FootnoteCollection.md @@ -0,0 +1,11 @@ +# FootnoteCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[Footnote]**](Footnote.md) | Collection of foonotes links | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FootnoteLink.md b/docs/FootnoteLink.md new file mode 100644 index 00000000..73b99f2a --- /dev/null +++ b/docs/FootnoteLink.md @@ -0,0 +1,11 @@ +# FootnoteLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FootnoteResponse.md b/docs/FootnoteResponse.md new file mode 100644 index 00000000..f2ba6b0e --- /dev/null +++ b/docs/FootnoteResponse.md @@ -0,0 +1,12 @@ +# FootnoteResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**footnote** | [**Footnote**](Footnote.md) | Footnote information | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FootnotesResponse.md b/docs/FootnotesResponse.md new file mode 100644 index 00000000..1685eb36 --- /dev/null +++ b/docs/FootnotesResponse.md @@ -0,0 +1,12 @@ +# FootnotesResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**footnotes** | [**FootnoteCollection**](FootnoteCollection.md) | Collection of footnotes. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FootnotesStatData.md b/docs/FootnotesStatData.md new file mode 100644 index 00000000..772dbc0c --- /dev/null +++ b/docs/FootnotesStatData.md @@ -0,0 +1,11 @@ +# FootnotesStatData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**word_count** | **int** | Total count of words in footnotes | +**paragraph_count** | **int** | Total count of paragraphs in footnotes | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormField.md b/docs/FormField.md new file mode 100644 index 00000000..b14a7903 --- /dev/null +++ b/docs/FormField.md @@ -0,0 +1,20 @@ +# FormField + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**calculate_on_exit** | **bool** | True if references to the specified form field are automatically updated whenever the field is exited. | [optional] +**enabled** | **bool** | True if a form field is enabled. | [optional] +**entry_macro** | **str** | Returns or sets an entry macro name for the form field. | [optional] +**exit_macro** | **str** | Returns or sets an exit macro name for the form field. | [optional] +**help_text** | **str** | Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. | [optional] +**name** | **str** | Gets or sets the form field name. | [optional] +**own_help** | **bool** | Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. | [optional] +**own_status** | **bool** | Specifies the source of the text that's displayed in the status bar when a form field has the focus. | [optional] +**status_text** | **str** | Returns or sets the text that's displayed in the status bar when a form field has the focus. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormFieldCheckbox.md b/docs/FormFieldCheckbox.md new file mode 100644 index 00000000..ae346ed8 --- /dev/null +++ b/docs/FormFieldCheckbox.md @@ -0,0 +1,23 @@ +# FormFieldCheckbox + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**calculate_on_exit** | **bool** | True if references to the specified form field are automatically updated whenever the field is exited. | [optional] +**enabled** | **bool** | True if a form field is enabled. | [optional] +**entry_macro** | **str** | Returns or sets an entry macro name for the form field. | [optional] +**exit_macro** | **str** | Returns or sets an exit macro name for the form field. | [optional] +**help_text** | **str** | Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. | [optional] +**name** | **str** | Gets or sets the form field name. | [optional] +**own_help** | **bool** | Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. | [optional] +**own_status** | **bool** | Specifies the source of the text that's displayed in the status bar when a form field has the focus. | [optional] +**status_text** | **str** | Returns or sets the text that's displayed in the status bar when a form field has the focus. | [optional] +**check_box_size** | **float** | Gets or sets the size of the checkbox in points. Has effect only when is true. | [optional] +**checked** | **bool** | Gets or sets the checked status of the check box form field. | [optional] +**is_check_box_exact_size** | **bool** | Gets or sets the boolean value that indicates whether the size of the textbox is automatic or specified explicitly. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormFieldCollection.md b/docs/FormFieldCollection.md new file mode 100644 index 00000000..6f1f0224 --- /dev/null +++ b/docs/FormFieldCollection.md @@ -0,0 +1,11 @@ +# FormFieldCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[FormField]**](FormField.md) | Collection of formfields | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormFieldDropDown.md b/docs/FormFieldDropDown.md new file mode 100644 index 00000000..5209cb1c --- /dev/null +++ b/docs/FormFieldDropDown.md @@ -0,0 +1,22 @@ +# FormFieldDropDown + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**calculate_on_exit** | **bool** | True if references to the specified form field are automatically updated whenever the field is exited. | [optional] +**enabled** | **bool** | True if a form field is enabled. | [optional] +**entry_macro** | **str** | Returns or sets an entry macro name for the form field. | [optional] +**exit_macro** | **str** | Returns or sets an exit macro name for the form field. | [optional] +**help_text** | **str** | Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. | [optional] +**name** | **str** | Gets or sets the form field name. | [optional] +**own_help** | **bool** | Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. | [optional] +**own_status** | **bool** | Specifies the source of the text that's displayed in the status bar when a form field has the focus. | [optional] +**status_text** | **str** | Returns or sets the text that's displayed in the status bar when a form field has the focus. | [optional] +**drop_down_items** | **list[str]** | Provides access to the items of a dropdown form field. | [optional] +**drop_down_selected_index** | **int** | Gets or sets the index specifying the currently selected item in a dropdown form field. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormFieldResponse.md b/docs/FormFieldResponse.md new file mode 100644 index 00000000..401988eb --- /dev/null +++ b/docs/FormFieldResponse.md @@ -0,0 +1,12 @@ +# FormFieldResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**form_field** | [**FormField**](FormField.md) | Field information | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormFieldTextInput.md b/docs/FormFieldTextInput.md new file mode 100644 index 00000000..a16e7f3b --- /dev/null +++ b/docs/FormFieldTextInput.md @@ -0,0 +1,24 @@ +# FormFieldTextInput + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**calculate_on_exit** | **bool** | True if references to the specified form field are automatically updated whenever the field is exited. | [optional] +**enabled** | **bool** | True if a form field is enabled. | [optional] +**entry_macro** | **str** | Returns or sets an entry macro name for the form field. | [optional] +**exit_macro** | **str** | Returns or sets an exit macro name for the form field. | [optional] +**help_text** | **str** | Returns or sets the text that's displayed in a message box when the form field has the focus and the user presses F1. | [optional] +**name** | **str** | Gets or sets the form field name. | [optional] +**own_help** | **bool** | Specifies the source of the text that's displayed in a message box when a form field has the focus and the user presses F1. | [optional] +**own_status** | **bool** | Specifies the source of the text that's displayed in the status bar when a form field has the focus. | [optional] +**status_text** | **str** | Returns or sets the text that's displayed in the status bar when a form field has the focus. | [optional] +**max_length** | **int** | Maximum length for the text field. Zero when the length is not limited. | [optional] +**text_input_default** | **str** | Gets or sets the default string or a calculation expression of a text form field. | [optional] +**text_input_format** | **str** | Returns or sets the text formatting for a text form field. | [optional] +**text_input_type** | **str** | Gets or sets the type of a text form field. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/FormFieldsResponse.md b/docs/FormFieldsResponse.md new file mode 100644 index 00000000..3c927117 --- /dev/null +++ b/docs/FormFieldsResponse.md @@ -0,0 +1,12 @@ +# FormFieldsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**form_fields** | [**FormFieldCollection**](FormFieldCollection.md) | Collection of form fields. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GifSaveOptionsData.md b/docs/GifSaveOptionsData.md new file mode 100644 index 00000000..fa57b03d --- /dev/null +++ b/docs/GifSaveOptionsData.md @@ -0,0 +1,37 @@ +# GifSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GraphicsQualityOptionsData.md b/docs/GraphicsQualityOptionsData.md new file mode 100644 index 00000000..1385fc88 --- /dev/null +++ b/docs/GraphicsQualityOptionsData.md @@ -0,0 +1,15 @@ +# GraphicsQualityOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**compositing_mode** | **str** | Gets or sets a value that specifies how composited images are drawn to this Graphics. | [optional] +**compositing_quality** | **str** | Gets or sets the rendering quality of composited images drawn to this Graphics. | [optional] +**interpolation_mode** | **str** | Gets or sets the interpolation mode associated with this Graphics. | [optional] +**smoothing_mode** | **str** | Gets or sets the rendering quality for this Graphics. | [optional] +**string_format** | [**StringFormatData**](StringFormatData.md) | Gets or sets text layout information (such as alignment, orientation and tab stops) display manipulations (such as ellipsis insertion and national digit substitution) and OpenType features. | [optional] +**text_rendering_hint** | **str** | Gets or sets the rendering mode for text associated with this Graphics. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HeaderFooter.md b/docs/HeaderFooter.md new file mode 100644 index 00000000..80f3f4ff --- /dev/null +++ b/docs/HeaderFooter.md @@ -0,0 +1,13 @@ +# HeaderFooter + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**type** | **str** | Paragraph's text | [optional] +**drawing_objects** | [**LinkElement**](LinkElement.md) | Link to DrawingObjects resource | [optional] +**paragraphs** | [**LinkElement**](LinkElement.md) | Link to Paragraphs resource | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HeaderFooterLink.md b/docs/HeaderFooterLink.md new file mode 100644 index 00000000..532e971e --- /dev/null +++ b/docs/HeaderFooterLink.md @@ -0,0 +1,11 @@ +# HeaderFooterLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**type** | **str** | Paragraph's text | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HeaderFooterLinkCollection.md b/docs/HeaderFooterLinkCollection.md new file mode 100644 index 00000000..7474aa7f --- /dev/null +++ b/docs/HeaderFooterLinkCollection.md @@ -0,0 +1,11 @@ +# HeaderFooterLinkCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[HeaderFooterLink]**](HeaderFooterLink.md) | Collection of section's links | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HeaderFooterResponse.md b/docs/HeaderFooterResponse.md new file mode 100644 index 00000000..e616f1d8 --- /dev/null +++ b/docs/HeaderFooterResponse.md @@ -0,0 +1,12 @@ +# HeaderFooterResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**header_footer** | [**HeaderFooter**](HeaderFooter.md) | HeaderFooter | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HeaderFootersResponse.md b/docs/HeaderFootersResponse.md new file mode 100644 index 00000000..d9c5aba2 --- /dev/null +++ b/docs/HeaderFootersResponse.md @@ -0,0 +1,12 @@ +# HeaderFootersResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**header_footers** | [**HeaderFooterLinkCollection**](HeaderFooterLinkCollection.md) | Collection of headers/footers | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HtmlFixedSaveOptionsData.md b/docs/HtmlFixedSaveOptionsData.md new file mode 100644 index 00000000..77ffa503 --- /dev/null +++ b/docs/HtmlFixedSaveOptionsData.md @@ -0,0 +1,36 @@ +# HtmlFixedSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**css_class_names_prefix** | **str** | Specifies prefix which is added to all class names in style.css file. Default value is \"aw\". | [optional] +**encoding** | **str** | Encoding. | [optional] +**export_embedded_css** | **bool** | Specifies whether the CSS (Cascading Style Sheet) should be embedded into Html document. | [optional] +**export_embedded_fonts** | **bool** | Specifies whether fonts should be embedded into Html document in Base64 format. | [optional] +**export_embedded_images** | **bool** | Specifies whether images should be embedded into Html document in Base64 format. | [optional] +**export_form_fields** | **bool** | Gets or sets indication of whether form fields are exported as interactive items (as 'input' tag) rather than converted to text or graphics. | [optional] +**font_format** | **str** | Specifies export format of fonts | [optional] +**page_horizontal_alignment** | **str** | Specifies the horizontal alignment of pages in an HTML document. Default value is HtmlFixedHorizontalPageAlignment.Center. | [optional] +**page_margins** | **float** | Specifies the margins around pages in an HTML document. The margins value is measured in points and should be equal to or greater than 0. Default value is 10 points. | [optional] +**resources_folder** | **str** | Specifies the physical folder where resources are saved when exporting a document | [optional] +**resources_folder_alias** | **str** | Specifies the name of the folder used to construct resource URIs | [optional] +**show_page_border** | **bool** | Specifies whether border around pages should be shown. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HtmlSaveOptionsData.md b/docs/HtmlSaveOptionsData.md new file mode 100644 index 00000000..c2fd479f --- /dev/null +++ b/docs/HtmlSaveOptionsData.md @@ -0,0 +1,56 @@ +# HtmlSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**allow_negative_indent** | **bool** | Specifies whether negative left and right indents of paragraphs are allowed (not normalized) | [optional] +**css_class_name_prefix** | **str** | Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. | [optional] +**css_style_sheet_file_name** | **str** | Specifies the name of the CSS file written when the document is exported to HTML | [optional] +**css_style_sheet_type** | **str** | Specifies how CSS styles are exported | [optional] +**document_split_criteria** | **str** | Specifies how the document should be split when saving | [optional] +**document_split_heading_level** | **int** | Specifies the maximum level of headings at which to split the document | [optional] +**encoding** | **str** | Specifies the encoding to use when exporting | [optional] +**export_document_properties** | **bool** | Specifies whether to export built-in and custom document properties | [optional] +**export_drop_down_form_field_as_text** | **bool** | Controls how drop-down form fields are saved to HTML. Default value is false. | [optional] +**export_font_resources** | **bool** | Specifies whether font resources should be exported | [optional] +**export_fonts_as_base64** | **bool** | Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. | [optional] +**export_headers_footers_mode** | **str** | Specifies how headers and footers are output | [optional] +**export_images_as_base64** | **bool** | Specifies whether images are saved in Base64 format | [optional] +**export_language_information** | **bool** | Specifies whether language information is exported | [optional] +**export_list_labels** | **str** | Controls how list labels are output | [optional] +**export_original_url_for_linked_images** | **bool** | Specifies whether original URL should be used as the URL of the linked images. Default value is false. | [optional] +**export_page_margins** | **bool** | Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. | [optional] +**export_page_setup** | **bool** | Specifies whether page setup is exported | [optional] +**export_relative_font_size** | **bool** | Specifies whether font sizes should be output in relative units when saving | [optional] +**export_roundtrip_information** | **bool** | Specifies whether to write the roundtrip information when saving to HTML Default value is true. | [optional] +**export_text_box_as_svg** | **bool** | Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. | [optional] +**export_text_input_form_field_as_text** | **bool** | Controls how text input form fields are saved | [optional] +**export_toc_page_numbers** | **bool** | Specifies whether to write page numbers to table of contents when saving | [optional] +**export_xhtml_transitional** | **bool** | Specifies whether to write the DOCTYPE declaration when saving | [optional] +**font_resources_subsetting_size_threshold** | **int** | Controls which font resources need subsetting when saving | [optional] +**fonts_folder** | **str** | Specifies the physical folder where fonts are saved when exporting a document | [optional] +**fonts_folder_alias** | **str** | Specifies the name of the folder used to construct font URIs | [optional] +**html_version** | **str** | Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. | [optional] +**image_resolution** | **int** | Specifies the output resolution for images when exporting | [optional] +**images_folder** | **str** | Specifies the physical folder where images are saved when exporting a document | [optional] +**images_folder_alias** | **str** | Specifies the name of the folder used to construct image URIs | [optional] +**metafile_format** | **str** | Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. | [optional] +**office_math_output_mode** | **str** | Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] +**resource_folder** | **str** | Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. | [optional] +**resource_folder_alias** | **str** | Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. | [optional] +**scale_image_to_shape_size** | **bool** | Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting | [optional] +**table_width_output_mode** | **str** | Controls how table, row and cell widths are exported | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Hyperlink.md b/docs/Hyperlink.md new file mode 100644 index 00000000..a0c542b7 --- /dev/null +++ b/docs/Hyperlink.md @@ -0,0 +1,12 @@ +# Hyperlink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**display_text** | **str** | Hypelink's display text | [optional] +**value** | **str** | Value | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HyperlinkResponse.md b/docs/HyperlinkResponse.md new file mode 100644 index 00000000..f52eb34c --- /dev/null +++ b/docs/HyperlinkResponse.md @@ -0,0 +1,12 @@ +# HyperlinkResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**hyperlink** | [**Hyperlink**](Hyperlink.md) | Hyperlink. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Hyperlinks.md b/docs/Hyperlinks.md new file mode 100644 index 00000000..8eb50e91 --- /dev/null +++ b/docs/Hyperlinks.md @@ -0,0 +1,11 @@ +# Hyperlinks + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**hyperlink_list** | [**list[Hyperlink]**](Hyperlink.md) | Array of . | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/HyperlinksResponse.md b/docs/HyperlinksResponse.md new file mode 100644 index 00000000..0cd0938f --- /dev/null +++ b/docs/HyperlinksResponse.md @@ -0,0 +1,12 @@ +# HyperlinksResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**hyperlinks** | [**Hyperlinks**](Hyperlinks.md) | Collection of hyperlinks. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImageSaveOptionsData.md b/docs/ImageSaveOptionsData.md new file mode 100644 index 00000000..0e1e7dac --- /dev/null +++ b/docs/ImageSaveOptionsData.md @@ -0,0 +1,37 @@ +# ImageSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/JpegSaveOptionsData.md b/docs/JpegSaveOptionsData.md new file mode 100644 index 00000000..b651ec69 --- /dev/null +++ b/docs/JpegSaveOptionsData.md @@ -0,0 +1,37 @@ +# JpegSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Link.md b/docs/Link.md new file mode 100644 index 00000000..4ed541a3 --- /dev/null +++ b/docs/Link.md @@ -0,0 +1,13 @@ +# Link + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**href** | **str** | The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference | [optional] +**rel** | **str** | atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". | [optional] +**type** | **str** | On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. | [optional] +**title** | **str** | The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/LinkElement.md b/docs/LinkElement.md new file mode 100644 index 00000000..c0fc60d1 --- /dev/null +++ b/docs/LinkElement.md @@ -0,0 +1,10 @@ +# LinkElement + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/LoadWebDocumentData.md b/docs/LoadWebDocumentData.md new file mode 100644 index 00000000..aba7a68b --- /dev/null +++ b/docs/LoadWebDocumentData.md @@ -0,0 +1,11 @@ +# LoadWebDocumentData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**loading_document_url** | **str** | Web document url | [optional] +**save_options** | [**SaveOptionsData**](SaveOptionsData.md) | Save options | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/MetafileRenderingOptionsData.md b/docs/MetafileRenderingOptionsData.md new file mode 100644 index 00000000..00379aea --- /dev/null +++ b/docs/MetafileRenderingOptionsData.md @@ -0,0 +1,13 @@ +# MetafileRenderingOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**emf_plus_dual_rendering_mode** | **str** | Determines how EMF+ Dual metafiles should be rendered | [optional] +**emulate_raster_operations** | **bool** | Gets or sets a value determining whether or not the raster operations should be emulated. | [optional] +**rendering_mode** | **str** | Determines how metafile images should be rendered | [optional] +**use_emf_embedded_to_wmf** | **bool** | Determines how WMF metafiles with embedded EMF metafiles should be rendered | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/MhtmlSaveOptionsData.md b/docs/MhtmlSaveOptionsData.md new file mode 100644 index 00000000..4ca5d004 --- /dev/null +++ b/docs/MhtmlSaveOptionsData.md @@ -0,0 +1,56 @@ +# MhtmlSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**allow_negative_indent** | **bool** | Specifies whether negative left and right indents of paragraphs are allowed (not normalized) | [optional] +**css_class_name_prefix** | **str** | Specifies a prefix which is added to all CSS class names. Default value is an empty string and generated CSS class names have no common prefix. If this value is not empty, all CSS classes generated by Aspose.Words will start with the specified prefix.This might be useful, for example, if you add custom CSS to generated documents and want to prevent class name conflicts. If the value is not null or empty, it must be a valid CSS identifier. | [optional] +**css_style_sheet_file_name** | **str** | Specifies the name of the CSS file written when the document is exported to HTML | [optional] +**css_style_sheet_type** | **str** | Specifies how CSS styles are exported | [optional] +**document_split_criteria** | **str** | Specifies how the document should be split when saving | [optional] +**document_split_heading_level** | **int** | Specifies the maximum level of headings at which to split the document | [optional] +**encoding** | **str** | Specifies the encoding to use when exporting | [optional] +**export_document_properties** | **bool** | Specifies whether to export built-in and custom document properties | [optional] +**export_drop_down_form_field_as_text** | **bool** | Controls how drop-down form fields are saved to HTML. Default value is false. | [optional] +**export_font_resources** | **bool** | Specifies whether font resources should be exported | [optional] +**export_fonts_as_base64** | **bool** | Specifies whether fonts resources should be embedded to HTML in Base64 encoding. Default is false. | [optional] +**export_headers_footers_mode** | **str** | Specifies how headers and footers are output | [optional] +**export_images_as_base64** | **bool** | Specifies whether images are saved in Base64 format | [optional] +**export_language_information** | **bool** | Specifies whether language information is exported | [optional] +**export_list_labels** | **str** | Controls how list labels are output | [optional] +**export_original_url_for_linked_images** | **bool** | Specifies whether original URL should be used as the URL of the linked images. Default value is false. | [optional] +**export_page_margins** | **bool** | Specifies whether page margins is exported to HTML, MHTML or EPUB. Default is false. | [optional] +**export_page_setup** | **bool** | Specifies whether page setup is exported | [optional] +**export_relative_font_size** | **bool** | Specifies whether font sizes should be output in relative units when saving | [optional] +**export_roundtrip_information** | **bool** | Specifies whether to write the roundtrip information when saving to HTML Default value is true. | [optional] +**export_text_box_as_svg** | **bool** | Controls how textboxes represented by Aspose.Words.Drawing.Shape are saved to HTML, MHTML or EPUB. Default value is false. When set to true, exports textboxes as inline \"svg\" elements. When false, exports as \"image\" elements. | [optional] +**export_text_input_form_field_as_text** | **bool** | Controls how text input form fields are saved | [optional] +**export_toc_page_numbers** | **bool** | Specifies whether to write page numbers to table of contents when saving | [optional] +**export_xhtml_transitional** | **bool** | Specifies whether to write the DOCTYPE declaration when saving | [optional] +**font_resources_subsetting_size_threshold** | **int** | Controls which font resources need subsetting when saving | [optional] +**fonts_folder** | **str** | Specifies the physical folder where fonts are saved when exporting a document | [optional] +**fonts_folder_alias** | **str** | Specifies the name of the folder used to construct font URIs | [optional] +**html_version** | **str** | Specifies version of HTML standard that should be used when saving the document to HTML or MHTML. Default value is Aspose.Words.Saving.HtmlVersion.Xhtml. | [optional] +**image_resolution** | **int** | Specifies the output resolution for images when exporting | [optional] +**images_folder** | **str** | Specifies the physical folder where images are saved when exporting a document | [optional] +**images_folder_alias** | **str** | Specifies the name of the folder used to construct image URIs | [optional] +**metafile_format** | **str** | Specifies in what format metafiles are saved when exporting to HTML, MHTML, or EPUB. Default value is Aspose.Words.Saving.HtmlMetafileFormat.Png, meaning that metafiles are rendered to raster PNG images. Metafiles are not natively displayed by HTML browsers. By default, Aspose.Words converts WMF and EMF images into PNG files when exporting to HTML.Other options are to convert metafiles to SVG images or to export them as is without conversion. Some image transforms, in particular image cropping, will not be applied to metafile images if they are exported to HTML without conversion. | [optional] +**office_math_output_mode** | **str** | Controls how OfficeMath objects are exported to HTML, MHTML or EPUB. Default value is HtmlOfficeMathOutputMode.Image. | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] +**resource_folder** | **str** | Specifies a physical folder where all resources like images, fonts, and external CSS are saved when a document is exported to HTML. Default is an empty string. | [optional] +**resource_folder_alias** | **str** | Specifies the name of the folder used to construct URIs of all resources written into an HTML document. Default is an empty string. | [optional] +**scale_image_to_shape_size** | **bool** | Specifies whether images are scaled by Aspose.Words to the bounding shape size when exporting | [optional] +**table_width_output_mode** | **str** | Controls how table, row and cell widths are exported | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ModificationOperationResult.md b/docs/ModificationOperationResult.md new file mode 100644 index 00000000..49638441 --- /dev/null +++ b/docs/ModificationOperationResult.md @@ -0,0 +1,11 @@ +# ModificationOperationResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**source** | [**FileLink**](FileLink.md) | Link to the source document (source for the modification operation) | [optional] +**dest** | [**FileLink**](FileLink.md) | Link to the dest document (result of the modification operation) | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/NodeLink.md b/docs/NodeLink.md new file mode 100644 index 00000000..69b38df1 --- /dev/null +++ b/docs/NodeLink.md @@ -0,0 +1,11 @@ +# NodeLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OdtSaveOptionsData.md b/docs/OdtSaveOptionsData.md new file mode 100644 index 00000000..25c98abe --- /dev/null +++ b/docs/OdtSaveOptionsData.md @@ -0,0 +1,21 @@ +# OdtSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**is_strict_schema11** | **bool** | Specifies whether export should correspond to ODT specification 1.1 strictly | [optional] +**measure_unit** | **str** | Allows to specify units of measure to apply to document content. The default value is Aspose.Words.Saving.OdtSaveMeasureUnit.Centimeters Open Office uses centimeters when specifying lengths, widths and other measurable formatting and content properties in documents whereas MS Office uses inches. | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OfficeMathLink.md b/docs/OfficeMathLink.md new file mode 100644 index 00000000..f88b95c0 --- /dev/null +++ b/docs/OfficeMathLink.md @@ -0,0 +1,11 @@ +# OfficeMathLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OfficeMathObject.md b/docs/OfficeMathObject.md new file mode 100644 index 00000000..5286ca0c --- /dev/null +++ b/docs/OfficeMathObject.md @@ -0,0 +1,15 @@ +# OfficeMathObject + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**content** | [**StoryChildNodes**](StoryChildNodes.md) | Content of footnote. | [optional] +**display_type** | **str** | Gets/sets Office Math display format type which represents whether an equation is displayed inline with the text or displayed on its own line. | [optional] +**justification** | **str** | Gets/sets Office Math justification. | [optional] +**math_object_type** | **str** | Gets type Aspose.Words.Math.OfficeMath.MathObjectType of this Office Math object. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OfficeMathObjectResponse.md b/docs/OfficeMathObjectResponse.md new file mode 100644 index 00000000..5e5fa562 --- /dev/null +++ b/docs/OfficeMathObjectResponse.md @@ -0,0 +1,12 @@ +# OfficeMathObjectResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**office_math_object** | [**OfficeMathObject**](OfficeMathObject.md) | OfficeMathObject information | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OfficeMathObjectsCollection.md b/docs/OfficeMathObjectsCollection.md new file mode 100644 index 00000000..3dfacfd5 --- /dev/null +++ b/docs/OfficeMathObjectsCollection.md @@ -0,0 +1,11 @@ +# OfficeMathObjectsCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[OfficeMathObject]**](OfficeMathObject.md) | Collection of OfficeMath objects. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OfficeMathObjectsResponse.md b/docs/OfficeMathObjectsResponse.md new file mode 100644 index 00000000..ed55c0f0 --- /dev/null +++ b/docs/OfficeMathObjectsResponse.md @@ -0,0 +1,12 @@ +# OfficeMathObjectsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**office_math_objects** | [**OfficeMathObjectsCollection**](OfficeMathObjectsCollection.md) | Collection of OfficeMath objects. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OoxmlSaveOptionsData.md b/docs/OoxmlSaveOptionsData.md new file mode 100644 index 00000000..6fef7b44 --- /dev/null +++ b/docs/OoxmlSaveOptionsData.md @@ -0,0 +1,21 @@ +# OoxmlSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**compliance** | **str** | Specifies the OOXML version for the output document | [optional] +**password** | **str** | Specifies a password to encrypt document using ECMA376 Standard encryption algorithm | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OutlineOptionsData.md b/docs/OutlineOptionsData.md new file mode 100644 index 00000000..be283b06 --- /dev/null +++ b/docs/OutlineOptionsData.md @@ -0,0 +1,14 @@ +# OutlineOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bookmarks_outline_levels** | [**list[BookmarksOutlineLevelData]**](BookmarksOutlineLevelData.md) | Allows to specify individual bookmarks outline level | [optional] +**default_bookmarks_outline_level** | **int** | Specifies the default level in the document outline at which to display Word bookmarks | [optional] +**create_missing_outline_levels** | **bool** | Gets or sets a value determining whether or not to create missing outline levels when the document is exported. Default value for this property is false. | [optional] +**expanded_outline_levels** | **int** | Specifies how many levels in the document outline to show expanded when the file is viewed | [optional] +**headings_outline_levels** | **int** | Specifies how many levels of headings (paragraphs formatted with the Heading styles) to include in the document outline | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageNumber.md b/docs/PageNumber.md new file mode 100644 index 00000000..c21d80ed --- /dev/null +++ b/docs/PageNumber.md @@ -0,0 +1,13 @@ +# PageNumber + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**format** | **str** | Page number format, e.g. \"{PAGE} of {NUMPAGES}\". | [optional] +**alignment** | **str** | Text alignment, possible values are left, right, center or justify. | [optional] +**is_top** | **bool** | If true the page number is added at the top of the page, else at the bottom. | +**set_page_number_on_first_page** | **bool** | If true the page number is added on first page too. | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageSetup.md b/docs/PageSetup.md new file mode 100644 index 00000000..96506813 --- /dev/null +++ b/docs/PageSetup.md @@ -0,0 +1,39 @@ +# PageSetup + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**bidi** | **bool** | Specifies that this section contains bidirectional (complex scripts) text. | [optional] +**border_always_in_front** | **bool** | Specifies where the page border is positioned relative to intersecting texts and objects. | [optional] +**border_applies_to** | **str** | Specifies which pages the page border is printed on. | [optional] +**border_distance_from** | **str** | Gets or sets a value that indicates whether the specified page border is measured from the edge of the page or from the text it surrounds. | [optional] +**bottom_margin** | **float** | Returns or sets the distance (in points) between the bottom edge of the page and the bottom boundary of the body text. | [optional] +**different_first_page_header_footer** | **bool** | True if a different header or footer is used on the first page. | [optional] +**first_page_tray** | **int** | Gets or sets the paper tray (bin) to use for the first page of a section. The value is implementation (printer) specific. | [optional] +**footer_distance** | **float** | Returns or sets the distance (in points) between the footer and the bottom of the page. | [optional] +**gutter** | **float** | Gets or sets the amount of extra space added to the margin for document binding. | [optional] +**header_distance** | **float** | Returns or sets the distance (in points) between the header and the top of the page. | [optional] +**left_margin** | **float** | Returns or sets the distance (in points) between the left edge of the page and the left boundary of the body text. | [optional] +**line_number_count_by** | **int** | Returns or sets the numeric increment for line numbers. | [optional] +**line_number_distance_from_text** | **float** | Gets or sets distance between the right edge of line numbers and the left edge of the document. | [optional] +**line_number_restart_mode** | **str** | Gets or sets the way line numbering runs that is, whether it starts over at the beginning of a new page or section or runs continuously. | [optional] +**line_starting_number** | **int** | Gets or sets the starting line number. | [optional] +**orientation** | **str** | Returns or sets the orientation of the page. | [optional] +**other_pages_tray** | **int** | Gets or sets the paper tray (bin) to be used for all but the first page of a section. The value is implementation (printer) specific. | [optional] +**page_height** | **float** | Returns or sets the height of the page in points. | [optional] +**page_number_style** | **str** | Gets or sets the page number format. | [optional] +**page_starting_number** | **int** | Gets or sets the starting page number of the section. | [optional] +**page_width** | **float** | Returns or sets the width of the page in points. | [optional] +**paper_size** | **str** | Returns or sets the paper size. | [optional] +**restart_page_numbering** | **bool** | True if page numbering restarts at the beginning of the section. | [optional] +**right_margin** | **float** | Returns or sets the distance (in points) between the right edge of the page and the right boundary of the body text. | [optional] +**rtl_gutter** | **bool** | Gets or sets whether Microsoft Word uses gutters for the section based on a right-to-left language or a left-to-right language. | [optional] +**section_start** | **str** | Returns or sets the type of section break for the specified object. | [optional] +**suppress_endnotes** | **bool** | True if endnotes are printed at the end of the next section that doesn't suppress endnotes. Suppressed endnotes are printed before the endnotes in that section. | [optional] +**top_margin** | **float** | Returns or sets the distance (in points) between the top edge of the page and the top boundary of the body text. | [optional] +**vertical_alignment** | **str** | Returns or sets the vertical alignment of text on each page in a document or section. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageStatData.md b/docs/PageStatData.md new file mode 100644 index 00000000..00a56df1 --- /dev/null +++ b/docs/PageStatData.md @@ -0,0 +1,13 @@ +# PageStatData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**page_number** | **int** | Page number | +**word_count** | **int** | Total count of words in the page | +**paragraph_count** | **int** | Total count of paragraphs in the page | +**footnotes_stat_data** | [**FootnotesStatData**](FootnotesStatData.md) | Detailed statistics of footnotes | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Paragraph.md b/docs/Paragraph.md new file mode 100644 index 00000000..adda0e56 --- /dev/null +++ b/docs/Paragraph.md @@ -0,0 +1,12 @@ +# Paragraph + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**child_nodes** | [**list[NodeLink]**](NodeLink.md) | Child nodes | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ParagraphInsert.md b/docs/ParagraphInsert.md new file mode 100644 index 00000000..60b45c83 --- /dev/null +++ b/docs/ParagraphInsert.md @@ -0,0 +1,10 @@ +# ParagraphInsert + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**text** | **str** | Paragraph's text | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ParagraphLink.md b/docs/ParagraphLink.md new file mode 100644 index 00000000..b5631623 --- /dev/null +++ b/docs/ParagraphLink.md @@ -0,0 +1,12 @@ +# ParagraphLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**text** | **str** | Paragraph's text | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ParagraphLinkCollection.md b/docs/ParagraphLinkCollection.md new file mode 100644 index 00000000..71960921 --- /dev/null +++ b/docs/ParagraphLinkCollection.md @@ -0,0 +1,11 @@ +# ParagraphLinkCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**paragraph_link_list** | [**list[ParagraphLink]**](ParagraphLink.md) | Collection of paragraph's links | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ParagraphLinkCollectionResponse.md b/docs/ParagraphLinkCollectionResponse.md new file mode 100644 index 00000000..27af9e18 --- /dev/null +++ b/docs/ParagraphLinkCollectionResponse.md @@ -0,0 +1,12 @@ +# ParagraphLinkCollectionResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**paragraphs** | [**ParagraphLinkCollection**](ParagraphLinkCollection.md) | Collection of paragraphs | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ParagraphResponse.md b/docs/ParagraphResponse.md new file mode 100644 index 00000000..26df49af --- /dev/null +++ b/docs/ParagraphResponse.md @@ -0,0 +1,12 @@ +# ParagraphResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**paragraph** | [**Paragraph**](Paragraph.md) | Paragraph | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PclSaveOptionsData.md b/docs/PclSaveOptionsData.md new file mode 100644 index 00000000..3fe92355 --- /dev/null +++ b/docs/PclSaveOptionsData.md @@ -0,0 +1,26 @@ +# PclSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**falllback_font_name** | **str** | Name of the font that will be used if no expected font is found in printer and built-in fonts collections. | [optional] +**rasterize_transformed_elements** | **bool** | Gets or sets a value determining whether or not complex transformed elements should be rasterized before saving to PCL document. Default is true. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PdfDigitalSignatureDetailsData.md b/docs/PdfDigitalSignatureDetailsData.md new file mode 100644 index 00000000..9bda11de --- /dev/null +++ b/docs/PdfDigitalSignatureDetailsData.md @@ -0,0 +1,14 @@ +# PdfDigitalSignatureDetailsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**certificate_filename** | **str** | certificate's filename using for signing | [optional] +**hash_algorithm** | **str** | hash algorithm | [optional] +**location** | **str** | location of the signing | [optional] +**reason** | **str** | reason for the signing | [optional] +**signature_date** | **datetime** | date of the signing | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PdfEncryptionDetailsData.md b/docs/PdfEncryptionDetailsData.md new file mode 100644 index 00000000..6c4a95ae --- /dev/null +++ b/docs/PdfEncryptionDetailsData.md @@ -0,0 +1,13 @@ +# PdfEncryptionDetailsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**encryption_algorithm** | **str** | Specifies the encryption algorithm to use | [optional] +**owner_password** | **str** | Specifies the owner password for the encrypted PDF document | [optional] +**permissions** | **str** | Specifies the operations that are allowed to a user on an encrypted PDF document | [optional] +**user_password** | **str** | Specifies the user password required for opening the encrypted PDF document | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PdfSaveOptionsData.md b/docs/PdfSaveOptionsData.md new file mode 100644 index 00000000..e33ef611 --- /dev/null +++ b/docs/PdfSaveOptionsData.md @@ -0,0 +1,47 @@ +# PdfSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**compliance** | **str** | Specifies the PDF standards compliance level for output documents | [optional] +**create_note_hyperlinks** | **bool** | Specifies whether to convert footnote/endnote references in main text story into active hyperlinks. When clicked the hyperlink will lead to the corresponding footnote/endnote. Default is false. | [optional] +**custom_properties_export** | **str** | Gets or sets a value determining the way are exported to PDF file. Default value is . | [optional] +**digital_signature_details** | [**PdfDigitalSignatureDetailsData**](PdfDigitalSignatureDetailsData.md) | Specifies the details for signing the output PDF document | [optional] +**display_doc_title** | **bool** | A flag specifying whether the window’s title bar should display the document title taken from the Title entry of the document information dictionary. | [optional] +**downsample_options** | [**DownsampleOptionsData**](DownsampleOptionsData.md) | Allows to specify downsample options. | [optional] +**embed_full_fonts** | **bool** | Controls how fonts are embedded into the resulting PDF documents | [optional] +**encryption_details** | [**PdfEncryptionDetailsData**](PdfEncryptionDetailsData.md) | Specifies the details for encrypting the output PDF document | [optional] +**escape_uri** | **bool** | A flag specifying whether URI should be escaped before writing. | [optional] +**export_document_structure** | **bool** | Determines whether or not to export document structure | [optional] +**font_embedding_mode** | **str** | Specifies the font embedding mode | [optional] +**image_color_space_export_mode** | **str** | Specifies how the color space will be selected for the images in PDF document. | [optional] +**image_compression** | **str** | Specifies compression type to be used for all images in the document | [optional] +**open_hyperlinks_in_new_window** | **bool** | Determines whether hyperlinks in the output Pdf document are forced to be opened in a new window (or tab) of a browser | [optional] +**outline_options** | [**OutlineOptionsData**](OutlineOptionsData.md) | Allows to specify outline options | [optional] +**page_mode** | **str** | Specifies how the PDF document should be displayed when opened in the PDF reader | [optional] +**preblend_images** | **bool** | Gets or sets a value determining whether or not to preblend transparent images with black background color. | [optional] +**preserve_form_fields** | **bool** | Specifies whether to preserve Microsoft Word form fields as form fields in PDF or convert them to text | [optional] +**text_compression** | **str** | Specifies compression type to be used for all textual content in the document | [optional] +**use_book_fold_printing_settings** | **bool** | Determines whether the document should be saved using a booklet printing layout | [optional] +**use_core_fonts** | **bool** | Determines whether or not to substitute TrueType fonts Arial, Times New Roman, Courier New and Symbol with core PDF Type 1 fonts | [optional] +**zoom_behavior** | **str** | Determines what type of zoom should be applied when a document is opened with a PDF viewer | [optional] +**zoom_factor** | **int** | Determines zoom factor (in percentages) for a document | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PngSaveOptionsData.md b/docs/PngSaveOptionsData.md new file mode 100644 index 00000000..5ebbcfc6 --- /dev/null +++ b/docs/PngSaveOptionsData.md @@ -0,0 +1,37 @@ +# PngSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PreferredWidth.md b/docs/PreferredWidth.md new file mode 100644 index 00000000..042d31ba --- /dev/null +++ b/docs/PreferredWidth.md @@ -0,0 +1,11 @@ +# PreferredWidth + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | Gets the unit of measure used for this preferred width value. | +**value** | **float** | Gets or sets the preferred width value. The unit of measure is specified in the property. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ProtectionData.md b/docs/ProtectionData.md new file mode 100644 index 00000000..3b1f226f --- /dev/null +++ b/docs/ProtectionData.md @@ -0,0 +1,10 @@ +# ProtectionData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**protection_type** | **str** | Type of the protection | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ProtectionDataResponse.md b/docs/ProtectionDataResponse.md new file mode 100644 index 00000000..b8e1a98e --- /dev/null +++ b/docs/ProtectionDataResponse.md @@ -0,0 +1,13 @@ +# ProtectionDataResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document_link** | [**FileLink**](FileLink.md) | Link to the document | [optional] +**protection_data** | [**ProtectionData**](ProtectionData.md) | Protection's data of the document | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ProtectionRequest.md b/docs/ProtectionRequest.md new file mode 100644 index 00000000..7c1258ba --- /dev/null +++ b/docs/ProtectionRequest.md @@ -0,0 +1,12 @@ +# ProtectionRequest + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**password** | **str** | Current password | [optional] +**new_password** | **str** | New password | [optional] +**protection_type** | **str** | New type of protection | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ProtectionResponse.md b/docs/ProtectionResponse.md new file mode 100644 index 00000000..dd970e03 --- /dev/null +++ b/docs/ProtectionResponse.md @@ -0,0 +1,13 @@ +# ProtectionResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document_link** | [**FileLink**](FileLink.md) | Link to the document | [optional] +**protection_result** | **bool** | Result of the changing of protection | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PsSaveOptionsData.md b/docs/PsSaveOptionsData.md new file mode 100644 index 00000000..acb37912 --- /dev/null +++ b/docs/PsSaveOptionsData.md @@ -0,0 +1,25 @@ +# PsSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**use_book_fold_printing_settings** | **bool** | Determines whether the document should be saved using a booklet printing layout | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ReplaceTextRequest.md b/docs/ReplaceTextRequest.md new file mode 100644 index 00000000..173f9dbf --- /dev/null +++ b/docs/ReplaceTextRequest.md @@ -0,0 +1,14 @@ +# ReplaceTextRequest + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**old_value** | **str** | Old text value (or regex pattern ) to replace. | [optional] +**new_value** | **str** | New text value to replace by. | [optional] +**is_match_case** | **bool** | Flag, true means the search is case-sensitive; false means the search is not case-sensitive. | +**is_match_whole_word** | **bool** | Flag, means that only whole word matched are replaced. | +**is_old_value_regex** | **bool** | Flag, means that contains regex expression. | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ReplaceTextResponse.md b/docs/ReplaceTextResponse.md new file mode 100644 index 00000000..03058681 --- /dev/null +++ b/docs/ReplaceTextResponse.md @@ -0,0 +1,13 @@ +# ReplaceTextResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document_link** | [**FileLink**](FileLink.md) | Link to the document. | [optional] +**matches** | **int** | Number of occurrences of the captured text in the document. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RevisionsModificationResponse.md b/docs/RevisionsModificationResponse.md new file mode 100644 index 00000000..ed3f49d9 --- /dev/null +++ b/docs/RevisionsModificationResponse.md @@ -0,0 +1,12 @@ +# RevisionsModificationResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**result** | [**ModificationOperationResult**](ModificationOperationResult.md) | result of the modification operations for the revisions collection | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RtfSaveOptionsData.md b/docs/RtfSaveOptionsData.md new file mode 100644 index 00000000..75f95ead --- /dev/null +++ b/docs/RtfSaveOptionsData.md @@ -0,0 +1,21 @@ +# RtfSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**export_compact_size** | **bool** | Allows to make output RTF documents smaller in size, but if they contain RTL (right-to-left) text, it will not be displayed correctly | [optional] +**export_images_for_old_readers** | **bool** | Specifies whether the keywords for \"old readers\" are written to RTF or not | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Run.md b/docs/Run.md new file mode 100644 index 00000000..8ef516b4 --- /dev/null +++ b/docs/Run.md @@ -0,0 +1,12 @@ +# Run + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**text** | **str** | Run's text | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RunLink.md b/docs/RunLink.md new file mode 100644 index 00000000..d04d2c8e --- /dev/null +++ b/docs/RunLink.md @@ -0,0 +1,12 @@ +# RunLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**text** | **str** | Run's text | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RunResponse.md b/docs/RunResponse.md new file mode 100644 index 00000000..924c493b --- /dev/null +++ b/docs/RunResponse.md @@ -0,0 +1,12 @@ +# RunResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**run** | [**Run**](Run.md) | Run | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Runs.md b/docs/Runs.md new file mode 100644 index 00000000..9e5533cc --- /dev/null +++ b/docs/Runs.md @@ -0,0 +1,11 @@ +# Runs + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[Run]**](Run.md) | Collection of fields | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RunsResponse.md b/docs/RunsResponse.md new file mode 100644 index 00000000..b4ffb39f --- /dev/null +++ b/docs/RunsResponse.md @@ -0,0 +1,12 @@ +# RunsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**runs** | [**Runs**](Runs.md) | Collection of runs. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SaveOptionsData.md b/docs/SaveOptionsData.md new file mode 100644 index 00000000..764b8a53 --- /dev/null +++ b/docs/SaveOptionsData.md @@ -0,0 +1,18 @@ +# SaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SaveResponse.md b/docs/SaveResponse.md new file mode 100644 index 00000000..4c5a0483 --- /dev/null +++ b/docs/SaveResponse.md @@ -0,0 +1,12 @@ +# SaveResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**save_result** | [**SaveResult**](SaveResult.md) | Save result. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SaveResult.md b/docs/SaveResult.md new file mode 100644 index 00000000..b04bc1fb --- /dev/null +++ b/docs/SaveResult.md @@ -0,0 +1,12 @@ +# SaveResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**source_document** | [**FileLink**](FileLink.md) | Link to source document. | [optional] +**dest_document** | [**FileLink**](FileLink.md) | Link to destination document. | [optional] +**additional_items** | [**list[FileLink]**](FileLink.md) | Links to additional items (css, images etc). | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchResponse.md b/docs/SearchResponse.md new file mode 100644 index 00000000..6c9547fb --- /dev/null +++ b/docs/SearchResponse.md @@ -0,0 +1,13 @@ +# SearchResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**searching_pattern** | **str** | A regular expression pattern used to find matches. | [optional] +**search_results** | [**SearchResultsCollection**](SearchResultsCollection.md) | Collection of search results. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchResult.md b/docs/SearchResult.md new file mode 100644 index 00000000..8fda5bd5 --- /dev/null +++ b/docs/SearchResult.md @@ -0,0 +1,11 @@ +# SearchResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**range_start** | [**DocumentPosition**](DocumentPosition.md) | Link to result range start node. | [optional] +**range_end** | [**DocumentPosition**](DocumentPosition.md) | Link to result range end node. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchResultsCollection.md b/docs/SearchResultsCollection.md new file mode 100644 index 00000000..4b428136 --- /dev/null +++ b/docs/SearchResultsCollection.md @@ -0,0 +1,11 @@ +# SearchResultsCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**results_list** | [**list[SearchResult]**](SearchResult.md) | Collection of comments | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Section.md b/docs/Section.md new file mode 100644 index 00000000..29111864 --- /dev/null +++ b/docs/Section.md @@ -0,0 +1,15 @@ +# Section + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**child_nodes** | [**list[NodeLink]**](NodeLink.md) | Child nodes. | [optional] +**header_footers** | [**LinkElement**](LinkElement.md) | Link to HeaderFooters resource | [optional] +**page_setup** | [**LinkElement**](LinkElement.md) | Link to PageSetup resource | [optional] +**paragraphs** | [**LinkElement**](LinkElement.md) | Link to Paragraphs resource | [optional] +**tables** | [**LinkElement**](LinkElement.md) | Link to Tables resource | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SectionLink.md b/docs/SectionLink.md new file mode 100644 index 00000000..91f19705 --- /dev/null +++ b/docs/SectionLink.md @@ -0,0 +1,10 @@ +# SectionLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SectionLinkCollection.md b/docs/SectionLinkCollection.md new file mode 100644 index 00000000..3060ea57 --- /dev/null +++ b/docs/SectionLinkCollection.md @@ -0,0 +1,11 @@ +# SectionLinkCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**section_link_list** | [**list[SectionLink]**](SectionLink.md) | Collection of section's links | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SectionLinkCollectionResponse.md b/docs/SectionLinkCollectionResponse.md new file mode 100644 index 00000000..bc84c964 --- /dev/null +++ b/docs/SectionLinkCollectionResponse.md @@ -0,0 +1,12 @@ +# SectionLinkCollectionResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**sections** | [**SectionLinkCollection**](SectionLinkCollection.md) | Collection of sections | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SectionPageSetupResponse.md b/docs/SectionPageSetupResponse.md new file mode 100644 index 00000000..f5bc3a5f --- /dev/null +++ b/docs/SectionPageSetupResponse.md @@ -0,0 +1,12 @@ +# SectionPageSetupResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**page_setup** | [**PageSetup**](PageSetup.md) | Section | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SectionResponse.md b/docs/SectionResponse.md new file mode 100644 index 00000000..902a3c0c --- /dev/null +++ b/docs/SectionResponse.md @@ -0,0 +1,12 @@ +# SectionResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**section** | [**Section**](Section.md) | Section | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SplitDocumentResponse.md b/docs/SplitDocumentResponse.md new file mode 100644 index 00000000..83a97a51 --- /dev/null +++ b/docs/SplitDocumentResponse.md @@ -0,0 +1,12 @@ +# SplitDocumentResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**split_result** | [**SplitDocumentResult**](SplitDocumentResult.md) | Resylt of splitting document. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SplitDocumentResult.md b/docs/SplitDocumentResult.md new file mode 100644 index 00000000..8f35a696 --- /dev/null +++ b/docs/SplitDocumentResult.md @@ -0,0 +1,12 @@ +# SplitDocumentResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**source_document** | [**FileLink**](FileLink.md) | Linkt to the source document. | [optional] +**pages** | [**list[FileLink]**](FileLink.md) | Array of pages. | [optional] +**zipped_pages** | [**FileLink**](FileLink.md) | Link to the file archive with pages. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/StatDataResponse.md b/docs/StatDataResponse.md new file mode 100644 index 00000000..92f359b4 --- /dev/null +++ b/docs/StatDataResponse.md @@ -0,0 +1,13 @@ +# StatDataResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**document_link** | [**FileLink**](FileLink.md) | Link to the document | [optional] +**stat_data** | [**DocumentStatData**](DocumentStatData.md) | Statistical data of the document | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/StoryChildNodes.md b/docs/StoryChildNodes.md new file mode 100644 index 00000000..c31d97a0 --- /dev/null +++ b/docs/StoryChildNodes.md @@ -0,0 +1,10 @@ +# StoryChildNodes + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**child_nodes** | [**list[NodeLink]**](NodeLink.md) | Child nodes. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/StringFormatData.md b/docs/StringFormatData.md new file mode 100644 index 00000000..9aed6a6f --- /dev/null +++ b/docs/StringFormatData.md @@ -0,0 +1,14 @@ +# StringFormatData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**alignment** | **str** | Gets or sets horizontal alignment of the string. | [optional] +**format_flags** | **str** | Gets or sets a System.Drawing.StringFormatFlags enumeration that contains formatting information. | [optional] +**hotkey_prefix** | **str** | Gets or sets the System.Drawing.Text.HotkeyPrefix object for this System.Drawing.StringFormat object. | [optional] +**line_alignment** | **str** | Gets or sets the vertical alignment of the string. | [optional] +**trimming** | **str** | Gets or sets the System.Drawing.StringTrimming enumeration for this System.Drawing.StringFormat object. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SvgSaveOptionsData.md b/docs/SvgSaveOptionsData.md new file mode 100644 index 00000000..09a77436 --- /dev/null +++ b/docs/SvgSaveOptionsData.md @@ -0,0 +1,30 @@ +# SvgSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**export_embedded_images** | **bool** | Specified whether images should be embedded into SVG document as base64 | [optional] +**fit_to_view_port** | **bool** | Specifies if the output SVG should fill the available viewport area (browser window or container). When set to true width and height of output SVG are set to 100%. | [optional] +**resources_folder** | **str** | Specifies the physical folder where resources (images) are saved when exporting | [optional] +**resources_folder_alias** | **str** | Specifies the name of the folder used to construct image URIs | [optional] +**show_page_border** | **bool** | Show/hide page stepper | [optional] +**text_output_mode** | **str** | Determines how text should be rendered | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Table.md b/docs/Table.md new file mode 100644 index 00000000..90ce2a98 --- /dev/null +++ b/docs/Table.md @@ -0,0 +1,13 @@ +# Table + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**table_properties** | [**TableProperties**](TableProperties.md) | Table properties. | [optional] +**table_row_list** | [**list[TableRow]**](TableRow.md) | Collection of table's rows. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableCell.md b/docs/TableCell.md new file mode 100644 index 00000000..cd192efa --- /dev/null +++ b/docs/TableCell.md @@ -0,0 +1,12 @@ +# TableCell + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**child_nodes** | [**list[NodeLink]**](NodeLink.md) | Child nodes. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableCellFormat.md b/docs/TableCellFormat.md new file mode 100644 index 00000000..88f4057e --- /dev/null +++ b/docs/TableCellFormat.md @@ -0,0 +1,22 @@ +# TableCellFormat + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**bottom_padding** | **float** | Returns or sets the amount of space (in points) to add below the contents of cell. | [optional] +**fit_text** | **bool** | If true, fits text in the cell, compressing each paragraph to the width of the cell. | [optional] +**horizontal_merge** | **str** | Specifies how the cell is merged horizontally with other cells in the row. | [optional] +**left_padding** | **float** | Returns or sets the amount of space (in points) to add to the left of the contents of cell. | [optional] +**orientation** | **str** | Returns or sets the orientation of text in a table cell. | [optional] +**preferred_width** | [**PreferredWidth**](PreferredWidth.md) | Returns or sets the preferred width of the cell. | [optional] +**right_padding** | **float** | Returns or sets the amount of space (in points) to add to the right of the contents of cell. | [optional] +**top_padding** | **float** | Returns or sets the amount of space (in points) to add above the contents of cell. | [optional] +**vertical_alignment** | **str** | Returns or sets the vertical alignment of text in the cell. | [optional] +**vertical_merge** | **str** | Specifies how the cell is merged with other cells vertically. | [optional] +**width** | **float** | Gets the width of the cell in points. | [optional] +**wrap_text** | **bool** | If true, wrap text for the cell. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableCellFormatResponse.md b/docs/TableCellFormatResponse.md new file mode 100644 index 00000000..a3bb8e01 --- /dev/null +++ b/docs/TableCellFormatResponse.md @@ -0,0 +1,12 @@ +# TableCellFormatResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**cell_format** | [**TableCellFormat**](TableCellFormat.md) | Table. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableCellInsert.md b/docs/TableCellInsert.md new file mode 100644 index 00000000..e6f28148 --- /dev/null +++ b/docs/TableCellInsert.md @@ -0,0 +1,10 @@ +# TableCellInsert + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**insert_after** | **int** | Table cell will be inserted after cell with specified 0-based index. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableCellResponse.md b/docs/TableCellResponse.md new file mode 100644 index 00000000..2a8c026d --- /dev/null +++ b/docs/TableCellResponse.md @@ -0,0 +1,12 @@ +# TableCellResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**cell** | [**TableCell**](TableCell.md) | Table cell. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableInsert.md b/docs/TableInsert.md new file mode 100644 index 00000000..1ce21f72 --- /dev/null +++ b/docs/TableInsert.md @@ -0,0 +1,12 @@ +# TableInsert + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**postion** | [**DocumentPosition**](DocumentPosition.md) | Table will be inserted before specified position. | [optional] +**columns_count** | **int** | Count of columns. Default is 2. | +**rows_count** | **int** | Count of rows. Default is 2. | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableLink.md b/docs/TableLink.md new file mode 100644 index 00000000..1a3a1717 --- /dev/null +++ b/docs/TableLink.md @@ -0,0 +1,11 @@ +# TableLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableLinkCollection.md b/docs/TableLinkCollection.md new file mode 100644 index 00000000..1dde279b --- /dev/null +++ b/docs/TableLinkCollection.md @@ -0,0 +1,11 @@ +# TableLinkCollection + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**table_link_list** | [**list[TableLink]**](TableLink.md) | Collection of table's links | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableLinkCollectionResponse.md b/docs/TableLinkCollectionResponse.md new file mode 100644 index 00000000..3e331635 --- /dev/null +++ b/docs/TableLinkCollectionResponse.md @@ -0,0 +1,12 @@ +# TableLinkCollectionResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**tables** | [**TableLinkCollection**](TableLinkCollection.md) | Collection of tables. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableProperties.md b/docs/TableProperties.md new file mode 100644 index 00000000..67cdfa92 --- /dev/null +++ b/docs/TableProperties.md @@ -0,0 +1,24 @@ +# TableProperties + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**alignment** | **str** | Specifies how an inline table is aligned in the document. | [optional] +**allow_auto_fit** | **bool** | Allows Microsoft Word and Aspose.Words to automatically resize cells in a table to fit their contents. | [optional] +**bidi** | **bool** | Gets or sets whether this is a right-to-left table. | [optional] +**bottom_padding** | **float** | Gets or sets the amount of space (in points) to add below the contents of cells. | [optional] +**cell_spacing** | **float** | Gets or sets the amount of space (in points) between the cells. | [optional] +**left_indent** | **float** | Gets or sets the value that represents the left indent of the table. | [optional] +**left_padding** | **float** | Gets or sets the amount of space (in points) to add to the left of the contents of cells. | [optional] +**preferred_width** | [**PreferredWidth**](PreferredWidth.md) | Gets or sets the table preferred width. Preferred width can be specified as a percentage, number of points or a special \"auto\" value. | [optional] +**right_padding** | **float** | Gets or sets the amount of space (in points) to add to the right of the contents of cells. | [optional] +**style_identifier** | **str** | Gets or sets the locale independent style identifier of the table style applied to this table. | [optional] +**style_name** | **str** | Gets or sets the name of the table style applied to this table. | [optional] +**style_options** | **str** | Gets or sets bit flags that specify how a table style is applied to this table. | [optional] +**text_wrapping** | **str** | Get or sets TextWrapping for table. | [optional] +**top_padding** | **float** | Gets or sets the amount of space (in points) to add above the contents of cells. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TablePropertiesResponse.md b/docs/TablePropertiesResponse.md new file mode 100644 index 00000000..3c3661cb --- /dev/null +++ b/docs/TablePropertiesResponse.md @@ -0,0 +1,12 @@ +# TablePropertiesResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**properties** | [**TableProperties**](TableProperties.md) | Table. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableResponse.md b/docs/TableResponse.md new file mode 100644 index 00000000..0e598d56 --- /dev/null +++ b/docs/TableResponse.md @@ -0,0 +1,12 @@ +# TableResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**table** | [**Table**](Table.md) | Table. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableRow.md b/docs/TableRow.md new file mode 100644 index 00000000..bb2475cb --- /dev/null +++ b/docs/TableRow.md @@ -0,0 +1,13 @@ +# TableRow + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**node_id** | **str** | Node id | [optional] +**row_format** | [**TableRowFormat**](TableRowFormat.md) | Provides access to the formatting properties of the row. | [optional] +**table_cell_list** | [**list[TableCell]**](TableCell.md) | Collection of table's rows. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableRowFormat.md b/docs/TableRowFormat.md new file mode 100644 index 00000000..0a543e1c --- /dev/null +++ b/docs/TableRowFormat.md @@ -0,0 +1,14 @@ +# TableRowFormat + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**allow_break_across_pages** | **bool** | True if the text in a table row is allowed to split across a page break. | [optional] +**heading_format** | **bool** | True if the row is repeated as a table heading on every page when the table spans more than one page. | [optional] +**height** | **float** | Gets or sets the height of the table row in points. | [optional] +**height_rule** | **str** | Gets or sets the rule for determining the height of the table row. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableRowFormatResponse.md b/docs/TableRowFormatResponse.md new file mode 100644 index 00000000..03e3ba81 --- /dev/null +++ b/docs/TableRowFormatResponse.md @@ -0,0 +1,12 @@ +# TableRowFormatResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**row_format** | [**TableRowFormat**](TableRowFormat.md) | Table. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableRowInsert.md b/docs/TableRowInsert.md new file mode 100644 index 00000000..83fe30dd --- /dev/null +++ b/docs/TableRowInsert.md @@ -0,0 +1,11 @@ +# TableRowInsert + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**insert_after** | **int** | Table row will be inserted after row with specified 0-based index. | [optional] +**columns_count** | **int** | Count of columns. Default is 1. | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TableRowResponse.md b/docs/TableRowResponse.md new file mode 100644 index 00000000..afe9556b --- /dev/null +++ b/docs/TableRowResponse.md @@ -0,0 +1,12 @@ +# TableRowResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**row** | [**TableRow**](TableRow.md) | Table row. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TextItem.md b/docs/TextItem.md new file mode 100644 index 00000000..9ccfa16d --- /dev/null +++ b/docs/TextItem.md @@ -0,0 +1,11 @@ +# TextItem + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**text** | **str** | Text. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TextItems.md b/docs/TextItems.md new file mode 100644 index 00000000..8434a18d --- /dev/null +++ b/docs/TextItems.md @@ -0,0 +1,11 @@ +# TextItems + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | [**WordsApiLink**](WordsApiLink.md) | Link to the document. | [optional] +**list** | [**list[TextItem]**](TextItem.md) | Collection of text items. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TextItemsResponse.md b/docs/TextItemsResponse.md new file mode 100644 index 00000000..87717f11 --- /dev/null +++ b/docs/TextItemsResponse.md @@ -0,0 +1,12 @@ +# TextItemsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**text_items** | [**TextItems**](TextItems.md) | Collection of text items. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TextSaveOptionsData.md b/docs/TextSaveOptionsData.md new file mode 100644 index 00000000..734fa9e9 --- /dev/null +++ b/docs/TextSaveOptionsData.md @@ -0,0 +1,24 @@ +# TextSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**encoding** | **str** | Specifies the encoding to use when exporting in plain text format | [optional] +**export_headers_footers** | **bool** | Specifies whether to output headers and footers when exporting in plain text format | [optional] +**force_page_breaks** | **bool** | Allows to specify whether the page breaks should be preserved during export. The default value is false. | [optional] +**paragraph_break** | **str** | Specifies the string to use as a paragraph break when exporting in plain text format | [optional] +**preserve_table_layout** | **bool** | Specifies whether the program should attempt to preserve layout of tables when saving in the plain text format | [optional] +**simplify_list_labels** | **bool** | Specifies whether the program should simplify list labels in case of complex label formatting not being adequately represented by plain text | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TiffSaveOptionsData.md b/docs/TiffSaveOptionsData.md new file mode 100644 index 00000000..2faf6f25 --- /dev/null +++ b/docs/TiffSaveOptionsData.md @@ -0,0 +1,39 @@ +# TiffSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**graphics_quality_options** | [**GraphicsQualityOptionsData**](GraphicsQualityOptionsData.md) | Allows to specify additional System.Drawing.Graphics quality options. | [optional] +**horizontal_resolution** | **float** | Gets or sets the horizontal resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**image_brightness** | **float** | Brightness of image | [optional] +**image_color_mode** | **str** | Color mode of image | [optional] +**image_contrast** | **float** | Contrast of image | [optional] +**paper_color** | **str** | Background (paper) color of image | [optional] +**pixel_format** | **str** | Pixel format of image | [optional] +**resolution** | **float** | Sets both horizontal and vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**scale** | **float** | Zoom factor of image | [optional] +**use_anti_aliasing** | **bool** | Determine whether or not to use anti-aliasing for rendering | [optional] +**use_gdi_emf_renderer** | **bool** | Gets or sets a value determining whether to use GDI+ or Aspose.Words metafile renderer when saving to EMF. | [optional] +**use_high_quality_rendering** | **bool** | Determine whether or not to use high quality (i.e. slow) rendering algorithms | [optional] +**vertical_resolution** | **float** | Gets or sets the vertical resolution for the generated images, in dots per inch. This property has effect only when saving to raster image formats. The default value is 96. | [optional] +**tiff_binarization_method** | **str** | Specifies method used while converting images to 1 bpp format. | [optional] +**tiff_compression** | **str** | Type of compression. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/WatermarkText.md b/docs/WatermarkText.md new file mode 100644 index 00000000..20fa99e0 --- /dev/null +++ b/docs/WatermarkText.md @@ -0,0 +1,11 @@ +# WatermarkText + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**text** | **str** | The watermark text. | [optional] +**rotation_angle** | **float** | The watermark rotation angle. | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/WordMLSaveOptionsData.md b/docs/WordMLSaveOptionsData.md new file mode 100644 index 00000000..b2aabb01 --- /dev/null +++ b/docs/WordMLSaveOptionsData.md @@ -0,0 +1,19 @@ +# WordMLSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**pretty_format** | **bool** | Specifies whether or not use pretty formats output | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/WordsApi.md b/docs/WordsApi.md new file mode 100644 index 00000000..d44db44e --- /dev/null +++ b/docs/WordsApi.md @@ -0,0 +1,7515 @@ +# asposewordscloud.WordsApi + +All URIs are relative to *https://localhost/v1.1* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**accept_all_revisions**](WordsApi.md#accept_all_revisions) | **POST** /words/{name}/revisions/acceptAll | Accept all revisions in document +[**classify**](WordsApi.md#classify) | **PUT** /words/classify | Classify raw text. +[**classify_document**](WordsApi.md#classify_document) | **GET** /words/{documentName}/classify | Classify document. +[**create_or_update_document_property**](WordsApi.md#create_or_update_document_property) | **POST** /words/{name}/documentProperties/{propertyName} | Add new or update existing document property. +[**delete_border**](WordsApi.md#delete_border) | **DELETE** /words/{name}/{nodePath}/borders/{index} | Resets border properties to default values. +[**delete_borders**](WordsApi.md#delete_borders) | **DELETE** /words/{name}/{nodePath}/borders | Resets borders properties to default values. +[**delete_comment**](WordsApi.md#delete_comment) | **DELETE** /words/{name}/comments/{commentIndex} | Remove comment from document. +[**delete_document_macros**](WordsApi.md#delete_document_macros) | **DELETE** /words/{name}/macros | Remove macros from document. +[**delete_document_property**](WordsApi.md#delete_document_property) | **DELETE** /words/{name}/documentProperties/{propertyName} | Delete document property. +[**delete_document_watermark**](WordsApi.md#delete_document_watermark) | **DELETE** /words/{name}/watermark | Delete watermark (for deleting last watermark from the document). +[**delete_drawing_object**](WordsApi.md#delete_drawing_object) | **DELETE** /words/{name}/{nodePath}/drawingObjects/{index} | Removes drawing object from document. +[**delete_field**](WordsApi.md#delete_field) | **DELETE** /words/{name}/{nodePath}/fields/{index} | Delete field from document. +[**delete_fields**](WordsApi.md#delete_fields) | **DELETE** /words/{name}/{nodePath}/fields | Remove fields from section paragraph. +[**delete_footnote**](WordsApi.md#delete_footnote) | **DELETE** /words/{name}/{nodePath}/footnotes/{index} | Removes footnote from document. +[**delete_form_field**](WordsApi.md#delete_form_field) | **DELETE** /words/{name}/{nodePath}/formfields/{index} | Removes form field from document. +[**delete_header_footer**](WordsApi.md#delete_header_footer) | **DELETE** /words/{name}/{sectionPath}/headersfooters/{index} | Delete header/footer from document. +[**delete_headers_footers**](WordsApi.md#delete_headers_footers) | **DELETE** /words/{name}/{sectionPath}/headersfooters | Delete document headers and footers. +[**delete_office_math_object**](WordsApi.md#delete_office_math_object) | **DELETE** /words/{name}/{nodePath}/OfficeMathObjects/{index} | Removes OfficeMath object from document. +[**delete_paragraph**](WordsApi.md#delete_paragraph) | **DELETE** /words/{name}/{nodePath}/paragraphs/{index} | Remove paragraph from section. +[**delete_run**](WordsApi.md#delete_run) | **DELETE** /words/{name}/{paragraphPath}/runs/{index} | Removes run from document. +[**delete_table**](WordsApi.md#delete_table) | **DELETE** /words/{name}/{nodePath}/tables/{index} | Delete a table. +[**delete_table_cell**](WordsApi.md#delete_table_cell) | **DELETE** /words/{name}/{tableRowPath}/cells/{index} | Delete a table cell. +[**delete_table_row**](WordsApi.md#delete_table_row) | **DELETE** /words/{name}/{tablePath}/rows/{index} | Delete a table row. +[**delete_unprotect_document**](WordsApi.md#delete_unprotect_document) | **DELETE** /words/{name}/protection | Unprotect document. +[**get_available_fonts**](WordsApi.md#get_available_fonts) | **GET** /words/fonts/available | Gets the list of fonts, available for document processing +[**get_border**](WordsApi.md#get_border) | **GET** /words/{name}/{nodePath}/borders/{index} | Return a border. +[**get_borders**](WordsApi.md#get_borders) | **GET** /words/{name}/{nodePath}/borders | Return a collection of borders. +[**get_comment**](WordsApi.md#get_comment) | **GET** /words/{name}/comments/{commentIndex} | Get comment from document. +[**get_comments**](WordsApi.md#get_comments) | **GET** /words/{name}/comments | Get comments from document. +[**get_document**](WordsApi.md#get_document) | **GET** /words/{documentName} | Read document common info. +[**get_document_bookmark_by_name**](WordsApi.md#get_document_bookmark_by_name) | **GET** /words/{name}/bookmarks/{bookmarkName} | Read document bookmark data by its name. +[**get_document_bookmarks**](WordsApi.md#get_document_bookmarks) | **GET** /words/{name}/bookmarks | Read document bookmarks common info. +[**get_document_drawing_object_by_index**](WordsApi.md#get_document_drawing_object_by_index) | **GET** /words/{name}/{nodePath}/drawingObjects/{index} | Read document drawing object common info by its index or convert to format specified. +[**get_document_drawing_object_image_data**](WordsApi.md#get_document_drawing_object_image_data) | **GET** /words/{name}/{nodePath}/drawingObjects/{index}/imageData | Read drawing object image data. +[**get_document_drawing_object_ole_data**](WordsApi.md#get_document_drawing_object_ole_data) | **GET** /words/{name}/{nodePath}/drawingObjects/{index}/oleData | Get drawing object OLE data. +[**get_document_drawing_objects**](WordsApi.md#get_document_drawing_objects) | **GET** /words/{name}/{nodePath}/drawingObjects | Read document drawing objects common info. +[**get_document_field_names**](WordsApi.md#get_document_field_names) | **GET** /words/{name}/mailMergeFieldNames | Read document field names. +[**get_document_hyperlink_by_index**](WordsApi.md#get_document_hyperlink_by_index) | **GET** /words/{name}/hyperlinks/{hyperlinkIndex} | Read document hyperlink by its index. +[**get_document_hyperlinks**](WordsApi.md#get_document_hyperlinks) | **GET** /words/{name}/hyperlinks | Read document hyperlinks common info. +[**get_document_paragraph**](WordsApi.md#get_document_paragraph) | **GET** /words/{name}/{nodePath}/paragraphs/{index} | This resource represents one of the paragraphs contained in the document. +[**get_document_paragraph_run**](WordsApi.md#get_document_paragraph_run) | **GET** /words/{name}/{paragraphPath}/runs/{index} | This resource represents run of text contained in the document. +[**get_document_paragraph_run_font**](WordsApi.md#get_document_paragraph_run_font) | **GET** /words/{name}/{paragraphPath}/runs/{index}/font | This resource represents font of run. +[**get_document_paragraph_runs**](WordsApi.md#get_document_paragraph_runs) | **GET** /words/{name}/{paragraphPath}/runs | This resource represents collection of runs in the paragraph. +[**get_document_paragraphs**](WordsApi.md#get_document_paragraphs) | **GET** /words/{name}/{nodePath}/paragraphs | Return a list of paragraphs that are contained in the document. +[**get_document_properties**](WordsApi.md#get_document_properties) | **GET** /words/{name}/documentProperties | Read document properties info. +[**get_document_property**](WordsApi.md#get_document_property) | **GET** /words/{name}/documentProperties/{propertyName} | Read document property info by the property name. +[**get_document_protection**](WordsApi.md#get_document_protection) | **GET** /words/{name}/protection | Read document protection common info. +[**get_document_statistics**](WordsApi.md#get_document_statistics) | **GET** /words/{name}/statistics | Read document statistics. +[**get_document_text_items**](WordsApi.md#get_document_text_items) | **GET** /words/{name}/textItems | Read document text items. +[**get_document_with_format**](WordsApi.md#get_document_with_format) | **GET** /words/{name} | Export the document into the specified format. +[**get_field**](WordsApi.md#get_field) | **GET** /words/{name}/{nodePath}/fields/{index} | Get field from document. +[**get_fields**](WordsApi.md#get_fields) | **GET** /words/{name}/{nodePath}/fields | Get fields from document. +[**get_footnote**](WordsApi.md#get_footnote) | **GET** /words/{name}/{nodePath}/footnotes/{index} | Read footnote by index. +[**get_footnotes**](WordsApi.md#get_footnotes) | **GET** /words/{name}/{nodePath}/footnotes | Get footnotes from document. +[**get_form_field**](WordsApi.md#get_form_field) | **GET** /words/{name}/{nodePath}/formfields/{index} | Returns representation of an one of the form field. +[**get_form_fields**](WordsApi.md#get_form_fields) | **GET** /words/{name}/{nodePath}/formfields | Get form fields from document. +[**get_header_footer**](WordsApi.md#get_header_footer) | **GET** /words/{name}/headersfooters/{headerFooterIndex} | Return a header/footer that is contained in the document. +[**get_header_footer_of_section**](WordsApi.md#get_header_footer_of_section) | **GET** /words/{name}/sections/{sectionIndex}/headersfooters/{headerFooterIndex} | Return a header/footer that is contained in the document. +[**get_header_footers**](WordsApi.md#get_header_footers) | **GET** /words/{name}/{sectionPath}/headersfooters | Return a list of header/footers that are contained in the document. +[**get_office_math_object**](WordsApi.md#get_office_math_object) | **GET** /words/{name}/{nodePath}/OfficeMathObjects/{index} | Read OfficeMath object by index. +[**get_office_math_objects**](WordsApi.md#get_office_math_objects) | **GET** /words/{name}/{nodePath}/OfficeMathObjects | Get OfficeMath objects from document. +[**get_section**](WordsApi.md#get_section) | **GET** /words/{name}/sections/{sectionIndex} | Get document section by index. +[**get_section_page_setup**](WordsApi.md#get_section_page_setup) | **GET** /words/{name}/sections/{sectionIndex}/pageSetup | Get page setup of section. +[**get_sections**](WordsApi.md#get_sections) | **GET** /words/{name}/sections | Return a list of sections that are contained in the document. +[**get_table**](WordsApi.md#get_table) | **GET** /words/{name}/{nodePath}/tables/{index} | Return a table. +[**get_table_cell**](WordsApi.md#get_table_cell) | **GET** /words/{name}/{tableRowPath}/cells/{index} | Return a table cell. +[**get_table_cell_format**](WordsApi.md#get_table_cell_format) | **GET** /words/{name}/{tableRowPath}/cells/{index}/cellformat | Return a table cell format. +[**get_table_properties**](WordsApi.md#get_table_properties) | **GET** /words/{name}/{nodePath}/tables/{index}/properties | Return a table properties. +[**get_table_row**](WordsApi.md#get_table_row) | **GET** /words/{name}/{tablePath}/rows/{index} | Return a table row. +[**get_table_row_format**](WordsApi.md#get_table_row_format) | **GET** /words/{name}/{tablePath}/rows/{index}/rowformat | Return a table row format. +[**get_tables**](WordsApi.md#get_tables) | **GET** /words/{name}/{nodePath}/tables | Return a list of tables that are contained in the document. +[**insert_table**](WordsApi.md#insert_table) | **PUT** /words/{name}/{nodePath}/tables | Adds table to document, returns added table's data. +[**insert_table_cell**](WordsApi.md#insert_table_cell) | **PUT** /words/{name}/{tableRowPath}/cells | Adds table cell to table, returns added cell's data. +[**insert_table_row**](WordsApi.md#insert_table_row) | **PUT** /words/{name}/{tablePath}/rows | Adds table row to table, returns added row's data. +[**post_append_document**](WordsApi.md#post_append_document) | **POST** /words/{name}/appendDocument | Append documents to original document. +[**post_change_document_protection**](WordsApi.md#post_change_document_protection) | **POST** /words/{name}/protection | Change document protection. +[**post_comment**](WordsApi.md#post_comment) | **POST** /words/{name}/comments/{commentIndex} | Updates the comment, returns updated comment's data. +[**post_compare_document**](WordsApi.md#post_compare_document) | **POST** /words/{name}/compareDocument | Compare document with original document. +[**post_document_execute_mail_merge**](WordsApi.md#post_document_execute_mail_merge) | **POST** /words/{name}/executeMailMerge | Execute document mail merge operation. +[**post_document_paragraph_run_font**](WordsApi.md#post_document_paragraph_run_font) | **POST** /words/{name}/{paragraphPath}/runs/{index}/font | Updates font properties, returns updated font data. +[**post_document_save_as**](WordsApi.md#post_document_save_as) | **POST** /words/{name}/saveAs | Convert document to destination format with detailed settings and save result to storage. +[**post_drawing_object**](WordsApi.md#post_drawing_object) | **POST** /words/{name}/{nodePath}/drawingObjects/{index} | Updates drawing object, returns updated drawing object's data. +[**post_execute_template**](WordsApi.md#post_execute_template) | **POST** /words/{name}/executeTemplate | Populate document template with data. +[**post_field**](WordsApi.md#post_field) | **POST** /words/{name}/{nodePath}/fields/{index} | Updates field's properties, returns updated field's data. +[**post_footnote**](WordsApi.md#post_footnote) | **POST** /words/{name}/{nodePath}/footnotes/{index} | Updates footnote's properties, returns updated run's data. +[**post_form_field**](WordsApi.md#post_form_field) | **POST** /words/{name}/{nodePath}/formfields/{index} | Updates properties of form field, returns updated form field. +[**post_insert_document_watermark_image**](WordsApi.md#post_insert_document_watermark_image) | **POST** /words/{name}/watermark/insertImage | Insert document watermark image. +[**post_insert_document_watermark_text**](WordsApi.md#post_insert_document_watermark_text) | **POST** /words/{name}/watermark/insertText | Insert document watermark text. +[**post_insert_page_numbers**](WordsApi.md#post_insert_page_numbers) | **POST** /words/{name}/insertPageNumbers | Insert document page numbers. +[**post_load_web_document**](WordsApi.md#post_load_web_document) | **POST** /words/loadWebDocument | Loads new document from web into the file with any supported format of data. +[**post_replace_text**](WordsApi.md#post_replace_text) | **POST** /words/{name}/replaceText | Replace document text. +[**post_run**](WordsApi.md#post_run) | **POST** /words/{name}/{paragraphPath}/runs/{index} | Updates run's properties, returns updated run's data. +[**post_split_document**](WordsApi.md#post_split_document) | **POST** /words/{name}/split | Split document. +[**post_update_document_bookmark**](WordsApi.md#post_update_document_bookmark) | **POST** /words/{name}/bookmarks/{bookmarkName} | Update document bookmark. +[**post_update_document_fields**](WordsApi.md#post_update_document_fields) | **POST** /words/{name}/updateFields | Update (reevaluate) fields in document. +[**put_comment**](WordsApi.md#put_comment) | **PUT** /words/{name}/comments | Adds comment to document, returns inserted comment's data. +[**put_convert_document**](WordsApi.md#put_convert_document) | **PUT** /words/convert | Convert document from request content to format specified. +[**put_create_document**](WordsApi.md#put_create_document) | **PUT** /words/create | Creates new document. Document is created with format which is recognized from file extensions. Supported extentions: \".doc\", \".docx\", \".docm\", \".dot\", \".dotm\", \".dotx\", \".flatopc\", \".fopc\", \".flatopc_macro\", \".fopc_macro\", \".flatopc_template\", \".fopc_template\", \".flatopc_template_macro\", \".fopc_template_macro\", \".wordml\", \".wml\", \".rtf\" +[**put_document_field_names**](WordsApi.md#put_document_field_names) | **PUT** /words/mailMergeFieldNames | Read document field names. +[**put_document_save_as_tiff**](WordsApi.md#put_document_save_as_tiff) | **PUT** /words/{name}/saveAs/tiff | Convert document to tiff with detailed settings and save result to storage. +[**put_drawing_object**](WordsApi.md#put_drawing_object) | **PUT** /words/{name}/{nodePath}/drawingObjects | Adds drawing object to document, returns added drawing object's data. +[**put_execute_mail_merge_online**](WordsApi.md#put_execute_mail_merge_online) | **PUT** /words/executeMailMerge | Execute document mail merge online. +[**put_execute_template_online**](WordsApi.md#put_execute_template_online) | **PUT** /words/executeTemplate | Populate document template with data online. +[**put_field**](WordsApi.md#put_field) | **PUT** /words/{name}/{nodePath}/fields | Adds field to document, returns inserted field's data. +[**put_footnote**](WordsApi.md#put_footnote) | **PUT** /words/{name}/{nodePath}/footnotes | Adds footnote to document, returns added footnote's data. +[**put_form_field**](WordsApi.md#put_form_field) | **PUT** /words/{name}/{nodePath}/formfields | Adds form field to paragraph, returns added form field's data. +[**put_header_footer**](WordsApi.md#put_header_footer) | **PUT** /words/{name}/{sectionPath}/headersfooters | Insert to document header or footer. +[**put_paragraph**](WordsApi.md#put_paragraph) | **PUT** /words/{name}/{nodePath}/paragraphs | Adds paragraph to document, returns added paragraph's data. +[**put_protect_document**](WordsApi.md#put_protect_document) | **PUT** /words/{name}/protection | Protect document. +[**put_run**](WordsApi.md#put_run) | **PUT** /words/{name}/{paragraphPath}/runs | Adds run to document, returns added paragraph's data. +[**reject_all_revisions**](WordsApi.md#reject_all_revisions) | **POST** /words/{name}/revisions/rejectAll | Reject all revisions in document +[**render_drawing_object**](WordsApi.md#render_drawing_object) | **GET** /words/{name}/{nodePath}/drawingObjects/{index}/render | Renders drawing object to specified format. +[**render_math_object**](WordsApi.md#render_math_object) | **GET** /words/{name}/{nodePath}/OfficeMathObjects/{index}/render | Renders math object to specified format. +[**render_page**](WordsApi.md#render_page) | **GET** /words/{name}/pages/{pageIndex}/render | Renders page to specified format. +[**render_paragraph**](WordsApi.md#render_paragraph) | **GET** /words/{name}/{nodePath}/paragraphs/{index}/render | Renders paragraph to specified format. +[**render_table**](WordsApi.md#render_table) | **GET** /words/{name}/{nodePath}/tables/{index}/render | Renders table to specified format. +[**reset_cache**](WordsApi.md#reset_cache) | **DELETE** /words/fonts/cache | Resets font's cache. +[**search**](WordsApi.md#search) | **GET** /words/{name}/search | Search text in document. +[**update_border**](WordsApi.md#update_border) | **POST** /words/{name}/{nodePath}/borders/{index} | Updates border properties. +[**update_section_page_setup**](WordsApi.md#update_section_page_setup) | **POST** /words/{name}/sections/{sectionIndex}/pageSetup | Update page setup of section. +[**update_table_cell_format**](WordsApi.md#update_table_cell_format) | **POST** /words/{name}/{tableRowPath}/cells/{index}/cellformat | Updates a table cell format. +[**update_table_properties**](WordsApi.md#update_table_properties) | **POST** /words/{name}/{nodePath}/tables/{index}/properties | Updates a table properties. +[**update_table_row_format**](WordsApi.md#update_table_row_format) | **POST** /words/{name}/{tablePath}/rows/{index}/rowformat | Updates a table row format. + + +# **accept_all_revisions** +> RevisionsModificationResponse accept_all_revisions(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Accept all revisions in document + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Accept all revisions in document + api_response = api_instance.accept_all_revisions(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->accept_all_revisions: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**RevisionsModificationResponse**](RevisionsModificationResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **classify** +> ClassificationResponse classify(text, best_classes_count=best_classes_count) + +Classify raw text. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +text = 'text_example' # str | Text to classify. +best_classes_count = '1' # str | Count of the best classes to return. (optional) (default to 1) + +try: + # Classify raw text. + api_response = api_instance.classify(text, best_classes_count=best_classes_count) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->classify: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **text** | **str**| Text to classify. | + **best_classes_count** | **str**| Count of the best classes to return. | [optional] [default to 1] + +### Return type + +[**ClassificationResponse**](ClassificationResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **classify_document** +> ClassificationResponse classify_document(document_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, best_classes_count=best_classes_count) + +Classify document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +document_name = 'document_name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +best_classes_count = '1' # str | Count of the best classes to return. (optional) (default to 1) + +try: + # Classify document. + api_response = api_instance.classify_document(document_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, best_classes_count=best_classes_count) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->classify_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **document_name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **best_classes_count** | **str**| Count of the best classes to return. | [optional] [default to 1] + +### Return type + +[**ClassificationResponse**](ClassificationResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **create_or_update_document_property** +> DocumentPropertyResponse create_or_update_document_property(name, property_name, _property, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Add new or update existing document property. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +property_name = 'property_name_example' # str | The property name. +_property = asposewordscloud.DocumentProperty() # DocumentProperty | The property with new value. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Add new or update existing document property. + api_response = api_instance.create_or_update_document_property(name, property_name, _property, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->create_or_update_document_property: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **property_name** | **str**| The property name. | + **_property** | [**DocumentProperty**](DocumentProperty.md)| The property with new value. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**DocumentPropertyResponse**](DocumentPropertyResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_border** +> BorderResponse delete_border(name, node_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Resets border properties to default values. + +'nodePath' should refer to node with cell or row + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +node_path = 'node_path_example' # str | Path to node with border(node should be cell or row). +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Resets border properties to default values. + api_response = api_instance.delete_border(name, node_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_border: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **node_path** | **str**| Path to node with border(node should be cell or row). | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**BorderResponse**](BorderResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_borders** +> BordersResponse delete_borders(name, node_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Resets borders properties to default values. + +'nodePath' should refer to node with cell or row + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +node_path = 'node_path_example' # str | Path to node with borders(node should be cell or row). +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Resets borders properties to default values. + api_response = api_instance.delete_borders(name, node_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_borders: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **node_path** | **str**| Path to node with borders(node should be cell or row). | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**BordersResponse**](BordersResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_comment** +> AsposeResponse delete_comment(name, comment_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Remove comment from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +comment_index = 56 # int | Comment index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Remove comment from document. + api_response = api_instance.delete_comment(name, comment_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_comment: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **comment_index** | **int**| Comment index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_document_macros** +> AsposeResponse delete_document_macros(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Remove macros from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Remove macros from document. + api_response = api_instance.delete_document_macros(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_document_macros: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_document_property** +> AsposeResponse delete_document_property(name, property_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Delete document property. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +property_name = 'property_name_example' # str | The property name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Delete document property. + api_response = api_instance.delete_document_property(name, property_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_document_property: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **property_name** | **str**| The property name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_document_watermark** +> DocumentResponse delete_document_watermark(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Delete watermark (for deleting last watermark from the document). + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Delete watermark (for deleting last watermark from the document). + api_response = api_instance.delete_document_watermark(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_document_watermark: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_drawing_object** +> AsposeResponse delete_drawing_object(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Removes drawing object from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Removes drawing object from document. + api_response = api_instance.delete_drawing_object(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_drawing_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_field** +> AsposeResponse delete_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Delete field from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of fields. (optional) + +try: + # Delete field from document. + api_response = api_instance.delete_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of fields. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_fields** +> AsposeResponse delete_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Remove fields from section paragraph. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of fields. (optional) + +try: + # Remove fields from section paragraph. + api_response = api_instance.delete_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_fields: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of fields. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_footnote** +> AsposeResponse delete_footnote(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Removes footnote from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of footnotes. (optional) + +try: + # Removes footnote from document. + api_response = api_instance.delete_footnote(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_footnote: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of footnotes. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_form_field** +> AsposeResponse delete_form_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Removes form field from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node that contains collection of formfields. (optional) + +try: + # Removes form field from document. + api_response = api_instance.delete_form_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_form_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node that contains collection of formfields. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_header_footer** +> AsposeResponse delete_header_footer(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, section_path=section_path) + +Delete header/footer from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +section_path = 'section_path_example' # str | Path to parent section. (optional) + +try: + # Delete header/footer from document. + api_response = api_instance.delete_header_footer(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, section_path=section_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_header_footer: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **section_path** | **str**| Path to parent section. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_headers_footers** +> AsposeResponse delete_headers_footers(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, section_path=section_path, headers_footers_types=headers_footers_types) + +Delete document headers and footers. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +section_path = 'section_path_example' # str | Path to parent section. (optional) +headers_footers_types = 'headers_footers_types_example' # str | List of types of headers and footers. (optional) + +try: + # Delete document headers and footers. + api_response = api_instance.delete_headers_footers(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, section_path=section_path, headers_footers_types=headers_footers_types) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_headers_footers: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **section_path** | **str**| Path to parent section. | [optional] + **headers_footers_types** | **str**| List of types of headers and footers. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_office_math_object** +> AsposeResponse delete_office_math_object(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Removes OfficeMath object from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of OfficeMath objects. (optional) + +try: + # Removes OfficeMath object from document. + api_response = api_instance.delete_office_math_object(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_office_math_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of OfficeMath objects. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_paragraph** +> AsposeResponse delete_paragraph(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Remove paragraph from section. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node which contains paragraphs. (optional) + +try: + # Remove paragraph from section. + api_response = api_instance.delete_paragraph(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_paragraph: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node which contains paragraphs. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_run** +> AsposeResponse delete_run(name, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Removes run from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Removes run from document. + api_response = api_instance.delete_run(name, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_run: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **paragraph_path** | **str**| Path to parent paragraph. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_table** +> AsposeResponse delete_table(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Delete a table. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) + +try: + # Delete a table. + api_response = api_instance.delete_table(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_table: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_table_cell** +> AsposeResponse delete_table_cell(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Delete a table cell. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_row_path = 'table_row_path_example' # str | Path to table row. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Delete a table cell. + api_response = api_instance.delete_table_cell(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_table_cell: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_row_path** | **str**| Path to table row. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_table_row** +> AsposeResponse delete_table_row(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Delete a table row. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_path = 'table_path_example' # str | Path to table. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Delete a table row. + api_response = api_instance.delete_table_row(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_table_row: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_path** | **str**| Path to table. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_unprotect_document** +> ProtectionDataResponse delete_unprotect_document(name, protection_request, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Unprotect document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +protection_request = asposewordscloud.ProtectionRequest() # ProtectionRequest | with protection settings. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Unprotect document. + api_response = api_instance.delete_unprotect_document(name, protection_request, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->delete_unprotect_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **protection_request** | [**ProtectionRequest**](ProtectionRequest.md)| with protection settings. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**ProtectionDataResponse**](ProtectionDataResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_available_fonts** +> AvailableFontsResponse get_available_fonts(fonts_location=fonts_location) + +Gets the list of fonts, available for document processing + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Gets the list of fonts, available for document processing + api_response = api_instance.get_available_fonts(fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_available_fonts: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**AvailableFontsResponse**](AvailableFontsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_border** +> BorderResponse get_border(name, node_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a border. + +'nodePath' should refer to node with cell or row + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +node_path = 'node_path_example' # str | Path to node with border(node should be cell or row). +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a border. + api_response = api_instance.get_border(name, node_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_border: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **node_path** | **str**| Path to node with border(node should be cell or row). | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**BorderResponse**](BorderResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_borders** +> BordersResponse get_borders(name, node_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a collection of borders. + +'nodePath' should refer to node with cell or row + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +node_path = 'node_path_example' # str | Path to node with borders(node should be cell or row). +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a collection of borders. + api_response = api_instance.get_borders(name, node_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_borders: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **node_path** | **str**| Path to node with borders(node should be cell or row). | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**BordersResponse**](BordersResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_comment** +> CommentResponse get_comment(name, comment_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Get comment from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +comment_index = 56 # int | Comment index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Get comment from document. + api_response = api_instance.get_comment(name, comment_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_comment: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **comment_index** | **int**| Comment index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**CommentResponse**](CommentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_comments** +> CommentsResponse get_comments(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Get comments from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Get comments from document. + api_response = api_instance.get_comments(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_comments: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**CommentsResponse**](CommentsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document** +> DocumentResponse get_document(document_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document common info. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +document_name = 'document_name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document common info. + api_response = api_instance.get_document(document_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **document_name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_bookmark_by_name** +> BookmarkResponse get_document_bookmark_by_name(name, bookmark_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document bookmark data by its name. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +bookmark_name = 'bookmark_name_example' # str | The bookmark name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document bookmark data by its name. + api_response = api_instance.get_document_bookmark_by_name(name, bookmark_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_bookmark_by_name: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **bookmark_name** | **str**| The bookmark name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**BookmarkResponse**](BookmarkResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_bookmarks** +> BookmarksResponse get_document_bookmarks(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document bookmarks common info. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document bookmarks common info. + api_response = api_instance.get_document_bookmarks(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_bookmarks: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**BookmarksResponse**](BookmarksResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_drawing_object_by_index** +> DrawingObjectResponse get_document_drawing_object_by_index(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Read document drawing object common info by its index or convert to format specified. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Read document drawing object common info by its index or convert to format specified. + api_response = api_instance.get_document_drawing_object_by_index(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_drawing_object_by_index: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**DrawingObjectResponse**](DrawingObjectResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_drawing_object_image_data** +> file get_document_drawing_object_image_data(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Read drawing object image data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Read drawing object image data. + api_response = api_instance.get_document_drawing_object_image_data(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_drawing_object_image_data: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_drawing_object_ole_data** +> file get_document_drawing_object_ole_data(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Get drawing object OLE data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Get drawing object OLE data. + api_response = api_instance.get_document_drawing_object_ole_data(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_drawing_object_ole_data: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_drawing_objects** +> DrawingObjectsResponse get_document_drawing_objects(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Read document drawing objects common info. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Read document drawing objects common info. + api_response = api_instance.get_document_drawing_objects(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_drawing_objects: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**DrawingObjectsResponse**](DrawingObjectsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_field_names** +> FieldNamesResponse get_document_field_names(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, use_non_merge_fields=use_non_merge_fields) + +Read document field names. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +use_non_merge_fields = false # bool | If true, result includes \"mustache\" field names. (optional) (default to false) + +try: + # Read document field names. + api_response = api_instance.get_document_field_names(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, use_non_merge_fields=use_non_merge_fields) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_field_names: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **use_non_merge_fields** | **bool**| If true, result includes \"mustache\" field names. | [optional] [default to false] + +### Return type + +[**FieldNamesResponse**](FieldNamesResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_hyperlink_by_index** +> HyperlinkResponse get_document_hyperlink_by_index(name, hyperlink_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document hyperlink by its index. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +hyperlink_index = 56 # int | The hyperlink index. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document hyperlink by its index. + api_response = api_instance.get_document_hyperlink_by_index(name, hyperlink_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_hyperlink_by_index: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **hyperlink_index** | **int**| The hyperlink index. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**HyperlinkResponse**](HyperlinkResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_hyperlinks** +> HyperlinksResponse get_document_hyperlinks(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document hyperlinks common info. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document hyperlinks common info. + api_response = api_instance.get_document_hyperlinks(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_hyperlinks: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**HyperlinksResponse**](HyperlinksResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_paragraph** +> ParagraphResponse get_document_paragraph(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +This resource represents one of the paragraphs contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node which contains paragraphs. (optional) + +try: + # This resource represents one of the paragraphs contained in the document. + api_response = api_instance.get_document_paragraph(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_paragraph: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node which contains paragraphs. | [optional] + +### Return type + +[**ParagraphResponse**](ParagraphResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_paragraph_run** +> RunResponse get_document_paragraph_run(name, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +This resource represents run of text contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # This resource represents run of text contained in the document. + api_response = api_instance.get_document_paragraph_run(name, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_paragraph_run: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **paragraph_path** | **str**| Path to parent paragraph. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**RunResponse**](RunResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_paragraph_run_font** +> FontResponse get_document_paragraph_run_font(name, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +This resource represents font of run. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # This resource represents font of run. + api_response = api_instance.get_document_paragraph_run_font(name, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_paragraph_run_font: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **paragraph_path** | **str**| Path to parent paragraph. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**FontResponse**](FontResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_paragraph_runs** +> RunsResponse get_document_paragraph_runs(name, paragraph_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +This resource represents collection of runs in the paragraph. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # This resource represents collection of runs in the paragraph. + api_response = api_instance.get_document_paragraph_runs(name, paragraph_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_paragraph_runs: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **paragraph_path** | **str**| Path to parent paragraph. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**RunsResponse**](RunsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_paragraphs** +> ParagraphLinkCollectionResponse get_document_paragraphs(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Return a list of paragraphs that are contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node which contains paragraphs. (optional) + +try: + # Return a list of paragraphs that are contained in the document. + api_response = api_instance.get_document_paragraphs(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_paragraphs: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node which contains paragraphs. | [optional] + +### Return type + +[**ParagraphLinkCollectionResponse**](ParagraphLinkCollectionResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_properties** +> DocumentPropertiesResponse get_document_properties(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document properties info. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document's name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document properties info. + api_response = api_instance.get_document_properties(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_properties: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document's name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**DocumentPropertiesResponse**](DocumentPropertiesResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_property** +> DocumentPropertyResponse get_document_property(name, property_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document property info by the property name. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +property_name = 'property_name_example' # str | The property name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document property info by the property name. + api_response = api_instance.get_document_property(name, property_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_property: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **property_name** | **str**| The property name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**DocumentPropertyResponse**](DocumentPropertyResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_protection** +> ProtectionDataResponse get_document_protection(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document protection common info. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document protection common info. + api_response = api_instance.get_document_protection(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_protection: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**ProtectionDataResponse**](ProtectionDataResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_statistics** +> StatDataResponse get_document_statistics(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, include_comments=include_comments, include_footnotes=include_footnotes, include_text_in_shapes=include_text_in_shapes) + +Read document statistics. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +include_comments = false # bool | Support including/excluding comments from the WordCount. Default value is \"true\". (optional) (default to false) +include_footnotes = false # bool | Support including/excluding footnotes from the WordCount. Default value is \"false\". (optional) (default to false) +include_text_in_shapes = false # bool | Support including/excluding shape's text from the WordCount. Default value is \"false\" (optional) (default to false) + +try: + # Read document statistics. + api_response = api_instance.get_document_statistics(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, include_comments=include_comments, include_footnotes=include_footnotes, include_text_in_shapes=include_text_in_shapes) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_statistics: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **include_comments** | **bool**| Support including/excluding comments from the WordCount. Default value is \"true\". | [optional] [default to false] + **include_footnotes** | **bool**| Support including/excluding footnotes from the WordCount. Default value is \"false\". | [optional] [default to false] + **include_text_in_shapes** | **bool**| Support including/excluding shape's text from the WordCount. Default value is \"false\" | [optional] [default to false] + +### Return type + +[**StatDataResponse**](StatDataResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_text_items** +> TextItemsResponse get_document_text_items(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Read document text items. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Read document text items. + api_response = api_instance.get_document_text_items(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_text_items: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**TextItemsResponse**](TextItemsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_document_with_format** +> file get_document_with_format(name, format, folder=folder, storage=storage, load_encoding=load_encoding, password=password, out_path=out_path, fonts_location=fonts_location) + +Export the document into the specified format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +format = 'format_example' # str | The destination format. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +out_path = 'out_path_example' # str | Path to save result (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Export the document into the specified format. + api_response = api_instance.get_document_with_format(name, format, folder=folder, storage=storage, load_encoding=load_encoding, password=password, out_path=out_path, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_document_with_format: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **format** | **str**| The destination format. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **out_path** | **str**| Path to save result | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_field** +> FieldResponse get_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Get field from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of fields. (optional) + +try: + # Get field from document. + api_response = api_instance.get_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of fields. | [optional] + +### Return type + +[**FieldResponse**](FieldResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_fields** +> FieldsResponse get_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Get fields from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of fields. (optional) + +try: + # Get fields from document. + api_response = api_instance.get_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_fields: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of fields. | [optional] + +### Return type + +[**FieldsResponse**](FieldsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_footnote** +> FootnoteResponse get_footnote(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Read footnote by index. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of footnotes. (optional) + +try: + # Read footnote by index. + api_response = api_instance.get_footnote(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_footnote: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of footnotes. | [optional] + +### Return type + +[**FootnoteResponse**](FootnoteResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_footnotes** +> FootnotesResponse get_footnotes(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Get footnotes from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of footnotes. (optional) + +try: + # Get footnotes from document. + api_response = api_instance.get_footnotes(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_footnotes: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of footnotes. | [optional] + +### Return type + +[**FootnotesResponse**](FootnotesResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_form_field** +> FormFieldResponse get_form_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Returns representation of an one of the form field. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node that contains collection of formfields. (optional) + +try: + # Returns representation of an one of the form field. + api_response = api_instance.get_form_field(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_form_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node that contains collection of formfields. | [optional] + +### Return type + +[**FormFieldResponse**](FormFieldResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_form_fields** +> FormFieldsResponse get_form_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Get form fields from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node containing collection of form fields. (optional) + +try: + # Get form fields from document. + api_response = api_instance.get_form_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_form_fields: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node containing collection of form fields. | [optional] + +### Return type + +[**FormFieldsResponse**](FormFieldsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_header_footer** +> HeaderFooterResponse get_header_footer(name, header_footer_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, filter_by_type=filter_by_type) + +Return a header/footer that is contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +header_footer_index = 56 # int | Header/footer index. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +filter_by_type = 'filter_by_type_example' # str | List of types of headers and footers. (optional) + +try: + # Return a header/footer that is contained in the document. + api_response = api_instance.get_header_footer(name, header_footer_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, filter_by_type=filter_by_type) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_header_footer: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **header_footer_index** | **int**| Header/footer index. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **filter_by_type** | **str**| List of types of headers and footers. | [optional] + +### Return type + +[**HeaderFooterResponse**](HeaderFooterResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_header_footer_of_section** +> HeaderFooterResponse get_header_footer_of_section(name, header_footer_index, section_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, filter_by_type=filter_by_type) + +Return a header/footer that is contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +header_footer_index = 56 # int | Header/footer index. +section_index = 56 # int | Section index. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +filter_by_type = 'filter_by_type_example' # str | List of types of headers and footers. (optional) + +try: + # Return a header/footer that is contained in the document. + api_response = api_instance.get_header_footer_of_section(name, header_footer_index, section_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, filter_by_type=filter_by_type) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_header_footer_of_section: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **header_footer_index** | **int**| Header/footer index. | + **section_index** | **int**| Section index. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **filter_by_type** | **str**| List of types of headers and footers. | [optional] + +### Return type + +[**HeaderFooterResponse**](HeaderFooterResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_header_footers** +> HeaderFootersResponse get_header_footers(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, section_path=section_path, filter_by_type=filter_by_type) + +Return a list of header/footers that are contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +section_path = 'section_path_example' # str | Path to parent section. (optional) +filter_by_type = 'filter_by_type_example' # str | List of types of headers and footers. (optional) + +try: + # Return a list of header/footers that are contained in the document. + api_response = api_instance.get_header_footers(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, section_path=section_path, filter_by_type=filter_by_type) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_header_footers: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **section_path** | **str**| Path to parent section. | [optional] + **filter_by_type** | **str**| List of types of headers and footers. | [optional] + +### Return type + +[**HeaderFootersResponse**](HeaderFootersResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_office_math_object** +> OfficeMathObjectResponse get_office_math_object(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Read OfficeMath object by index. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of OfficeMath objects. (optional) + +try: + # Read OfficeMath object by index. + api_response = api_instance.get_office_math_object(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_office_math_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of OfficeMath objects. | [optional] + +### Return type + +[**OfficeMathObjectResponse**](OfficeMathObjectResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_office_math_objects** +> OfficeMathObjectsResponse get_office_math_objects(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Get OfficeMath objects from document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of OfficeMath objects. (optional) + +try: + # Get OfficeMath objects from document. + api_response = api_instance.get_office_math_objects(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_office_math_objects: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains collection of OfficeMath objects. | [optional] + +### Return type + +[**OfficeMathObjectsResponse**](OfficeMathObjectsResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_section** +> SectionResponse get_section(name, section_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Get document section by index. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +section_index = 56 # int | Section index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Get document section by index. + api_response = api_instance.get_section(name, section_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_section: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **section_index** | **int**| Section index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**SectionResponse**](SectionResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_section_page_setup** +> SectionPageSetupResponse get_section_page_setup(name, section_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Get page setup of section. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +section_index = 56 # int | Section index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Get page setup of section. + api_response = api_instance.get_section_page_setup(name, section_index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_section_page_setup: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **section_index** | **int**| Section index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**SectionPageSetupResponse**](SectionPageSetupResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_sections** +> SectionLinkCollectionResponse get_sections(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a list of sections that are contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a list of sections that are contained in the document. + api_response = api_instance.get_sections(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_sections: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**SectionLinkCollectionResponse**](SectionLinkCollectionResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_table** +> TableResponse get_table(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Return a table. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) + +try: + # Return a table. + api_response = api_instance.get_table(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_table: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + +### Return type + +[**TableResponse**](TableResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_table_cell** +> TableCellResponse get_table_cell(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a table cell. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_row_path = 'table_row_path_example' # str | Path to table row. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a table cell. + api_response = api_instance.get_table_cell(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_table_cell: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_row_path** | **str**| Path to table row. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**TableCellResponse**](TableCellResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_table_cell_format** +> TableCellFormatResponse get_table_cell_format(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a table cell format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_row_path = 'table_row_path_example' # str | Path to table row. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a table cell format. + api_response = api_instance.get_table_cell_format(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_table_cell_format: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_row_path** | **str**| Path to table row. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**TableCellFormatResponse**](TableCellFormatResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_table_properties** +> TablePropertiesResponse get_table_properties(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Return a table properties. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) + +try: + # Return a table properties. + api_response = api_instance.get_table_properties(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_table_properties: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + +### Return type + +[**TablePropertiesResponse**](TablePropertiesResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_table_row** +> TableRowResponse get_table_row(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a table row. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_path = 'table_path_example' # str | Path to table. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a table row. + api_response = api_instance.get_table_row(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_table_row: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_path** | **str**| Path to table. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**TableRowResponse**](TableRowResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_table_row_format** +> TableRowFormatResponse get_table_row_format(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Return a table row format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_path = 'table_path_example' # str | Path to table. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Return a table row format. + api_response = api_instance.get_table_row_format(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_table_row_format: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_path** | **str**| Path to table. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**TableRowFormatResponse**](TableRowFormatResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_tables** +> TableLinkCollectionResponse get_tables(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + +Return a list of tables that are contained in the document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) + +try: + # Return a list of tables that are contained in the document. + api_response = api_instance.get_tables(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->get_tables: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + +### Return type + +[**TableLinkCollectionResponse**](TableLinkCollectionResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **insert_table** +> TableResponse insert_table(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, table=table, node_path=node_path) + +Adds table to document, returns added table's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +table = asposewordscloud.TableInsert() # TableInsert | Table parameters/ (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) + +try: + # Adds table to document, returns added table's data. + api_response = api_instance.insert_table(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, table=table, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->insert_table: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **table** | [**TableInsert**](TableInsert.md)| Table parameters/ | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + +### Return type + +[**TableResponse**](TableResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **insert_table_cell** +> TableCellResponse insert_table_cell(name, table_row_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, cell=cell) + +Adds table cell to table, returns added cell's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_row_path = 'table_row_path_example' # str | Path to table row. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +cell = asposewordscloud.TableCellInsert() # TableCellInsert | Table cell parameters/ (optional) + +try: + # Adds table cell to table, returns added cell's data. + api_response = api_instance.insert_table_cell(name, table_row_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, cell=cell) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->insert_table_cell: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_row_path** | **str**| Path to table row. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **cell** | [**TableCellInsert**](TableCellInsert.md)| Table cell parameters/ | [optional] + +### Return type + +[**TableCellResponse**](TableCellResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **insert_table_row** +> TableRowResponse insert_table_row(name, table_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, row=row) + +Adds table row to table, returns added row's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_path = 'table_path_example' # str | Path to table. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +row = asposewordscloud.TableRowInsert() # TableRowInsert | Table row parameters/ (optional) + +try: + # Adds table row to table, returns added row's data. + api_response = api_instance.insert_table_row(name, table_path, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, row=row) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->insert_table_row: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_path** | **str**| Path to table. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **row** | [**TableRowInsert**](TableRowInsert.md)| Table row parameters/ | [optional] + +### Return type + +[**TableRowResponse**](TableRowResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_append_document** +> DocumentResponse post_append_document(name, document_list, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Append documents to original document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | Original document name. +document_list = asposewordscloud.DocumentEntryList() # DocumentEntryList | with a list of documents to append. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Append documents to original document. + api_response = api_instance.post_append_document(name, document_list, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_append_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| Original document name. | + **document_list** | [**DocumentEntryList**](DocumentEntryList.md)| with a list of documents to append. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_change_document_protection** +> ProtectionDataResponse post_change_document_protection(name, protection_request, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Change document protection. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +protection_request = asposewordscloud.ProtectionRequest() # ProtectionRequest | with protection settings. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Change document protection. + api_response = api_instance.post_change_document_protection(name, protection_request, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_change_document_protection: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **protection_request** | [**ProtectionRequest**](ProtectionRequest.md)| with protection settings. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**ProtectionDataResponse**](ProtectionDataResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_comment** +> CommentResponse post_comment(name, comment_index, comment, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Updates the comment, returns updated comment's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +comment_index = 56 # int | Comment index +comment = asposewordscloud.Comment() # Comment | Comment data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Updates the comment, returns updated comment's data. + api_response = api_instance.post_comment(name, comment_index, comment, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_comment: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **comment_index** | **int**| Comment index | + **comment** | [**Comment**](Comment.md)| Comment data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**CommentResponse**](CommentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_compare_document** +> DocumentResponse post_compare_document(name, compare_data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Compare document with original document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | Original document name. +compare_data = asposewordscloud.CompareData() # CompareData | with a document to compare. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Compare document with original document. + api_response = api_instance.post_compare_document(name, compare_data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_compare_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| Original document name. | + **compare_data** | [**CompareData**](CompareData.md)| with a document to compare. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_document_execute_mail_merge** +> DocumentResponse post_document_execute_mail_merge(name, data=data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, with_regions=with_regions, mail_merge_data_file=mail_merge_data_file, cleanup=cleanup, use_whole_paragraph_as_region=use_whole_paragraph_as_region, dest_file_name=dest_file_name) + +Execute document mail merge operation. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +data = 'data_example' # str | Mail merge data (optional) +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +with_regions = false # bool | With regions flag. (optional) (default to false) +mail_merge_data_file = 'mail_merge_data_file_example' # str | Mail merge data. (optional) +cleanup = 'cleanup_example' # str | Clean up options. (optional) +use_whole_paragraph_as_region = true # bool | Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. (optional) (default to true) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. (optional) + +try: + # Execute document mail merge operation. + api_response = api_instance.post_document_execute_mail_merge(name, data=data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, with_regions=with_regions, mail_merge_data_file=mail_merge_data_file, cleanup=cleanup, use_whole_paragraph_as_region=use_whole_paragraph_as_region, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_document_execute_mail_merge: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **data** | **str**| Mail merge data | [optional] + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **with_regions** | **bool**| With regions flag. | [optional] [default to false] + **mail_merge_data_file** | **str**| Mail merge data. | [optional] + **cleanup** | **str**| Clean up options. | [optional] + **use_whole_paragraph_as_region** | **bool**| Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. | [optional] [default to true] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_document_paragraph_run_font** +> FontResponse post_document_paragraph_run_font(name, font_dto, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Updates font properties, returns updated font data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +font_dto = asposewordscloud.Font() # Font | Font dto object +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Updates font properties, returns updated font data. + api_response = api_instance.post_document_paragraph_run_font(name, font_dto, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_document_paragraph_run_font: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **font_dto** | [**Font**](Font.md)| Font dto object | + **paragraph_path** | **str**| Path to parent paragraph. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**FontResponse**](FontResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_document_save_as** +> SaveResponse post_document_save_as(name, save_options_data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, fonts_location=fonts_location) + +Convert document to destination format with detailed settings and save result to storage. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +save_options_data = asposewordscloud.SaveOptionsData() # SaveOptionsData | Save options. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Convert document to destination format with detailed settings and save result to storage. + api_response = api_instance.post_document_save_as(name, save_options_data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_document_save_as: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **save_options_data** | [**SaveOptionsData**](SaveOptionsData.md)| Save options. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**SaveResponse**](SaveResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_drawing_object** +> DrawingObjectResponse post_drawing_object(name, drawing_object, image_file, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Updates drawing object, returns updated drawing object's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +drawing_object = 'drawing_object_example' # str | Drawing object parameters +image_file = '/path/to/file.txt' # file | File with image +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Updates drawing object, returns updated drawing object's data. + api_response = api_instance.post_drawing_object(name, drawing_object, image_file, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_drawing_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **drawing_object** | **str**| Drawing object parameters | + **image_file** | **file**| File with image | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**DrawingObjectResponse**](DrawingObjectResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_execute_template** +> DocumentResponse post_execute_template(name, data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, cleanup=cleanup, use_whole_paragraph_as_region=use_whole_paragraph_as_region, with_regions=with_regions, dest_file_name=dest_file_name) + +Populate document template with data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The template document name. +data = 'data_example' # str | Mail merge data +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +cleanup = 'cleanup_example' # str | Clean up options. (optional) +use_whole_paragraph_as_region = true # bool | Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. (optional) (default to true) +with_regions = true # bool | Merge with regions or not. True by default (optional) (default to true) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. (optional) + +try: + # Populate document template with data. + api_response = api_instance.post_execute_template(name, data, folder=folder, storage=storage, load_encoding=load_encoding, password=password, cleanup=cleanup, use_whole_paragraph_as_region=use_whole_paragraph_as_region, with_regions=with_regions, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_execute_template: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The template document name. | + **data** | **str**| Mail merge data | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **cleanup** | **str**| Clean up options. | [optional] + **use_whole_paragraph_as_region** | **bool**| Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. | [optional] [default to true] + **with_regions** | **bool**| Merge with regions or not. True by default | [optional] [default to true] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved with autogenerated name. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_field** +> FieldResponse post_field(name, field, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Updates field's properties, returns updated field's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +field = asposewordscloud.Field() # Field | Field data. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of fields. (optional) + +try: + # Updates field's properties, returns updated field's data. + api_response = api_instance.post_field(name, field, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **field** | [**Field**](Field.md)| Field data. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of fields. | [optional] + +### Return type + +[**FieldResponse**](FieldResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_footnote** +> FootnoteResponse post_footnote(name, footnote_dto, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Updates footnote's properties, returns updated run's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +footnote_dto = asposewordscloud.Footnote() # Footnote | Footnote data. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of footnotes. (optional) + +try: + # Updates footnote's properties, returns updated run's data. + api_response = api_instance.post_footnote(name, footnote_dto, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_footnote: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **footnote_dto** | [**Footnote**](Footnote.md)| Footnote data. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of footnotes. | [optional] + +### Return type + +[**FootnoteResponse**](FootnoteResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_form_field** +> FormFieldResponse post_form_field(name, form_field, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Updates properties of form field, returns updated form field. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +form_field = asposewordscloud.FormField() # FormField | From field data. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node that contains collection of formfields. (optional) + +try: + # Updates properties of form field, returns updated form field. + api_response = api_instance.post_form_field(name, form_field, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_form_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **form_field** | [**FormField**](FormField.md)| From field data. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node that contains collection of formfields. | [optional] + +### Return type + +[**FormFieldResponse**](FormFieldResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_insert_document_watermark_image** +> DocumentResponse post_insert_document_watermark_image(name, image_file=image_file, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, rotation_angle=rotation_angle, image=image) + +Insert document watermark image. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +image_file = '/path/to/file.txt' # file | File with image (optional) +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +rotation_angle = 0.0 # float | The watermark rotation angle. (optional) (default to 0.0) +image = 'image_example' # str | The image file server full name. If the name is empty the image is expected in request content. (optional) + +try: + # Insert document watermark image. + api_response = api_instance.post_insert_document_watermark_image(name, image_file=image_file, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, rotation_angle=rotation_angle, image=image) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_insert_document_watermark_image: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **image_file** | **file**| File with image | [optional] + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **rotation_angle** | **float**| The watermark rotation angle. | [optional] [default to 0.0] + **image** | **str**| The image file server full name. If the name is empty the image is expected in request content. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_insert_document_watermark_text** +> DocumentResponse post_insert_document_watermark_text(name, watermark_text, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Insert document watermark text. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +watermark_text = asposewordscloud.WatermarkText() # WatermarkText | with the watermark data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Insert document watermark text. + api_response = api_instance.post_insert_document_watermark_text(name, watermark_text, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_insert_document_watermark_text: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **watermark_text** | [**WatermarkText**](WatermarkText.md)| with the watermark data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_insert_page_numbers** +> DocumentResponse post_insert_page_numbers(name, page_number, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Insert document page numbers. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | A document name. +page_number = asposewordscloud.PageNumber() # PageNumber | with the page numbers settings. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Insert document page numbers. + api_response = api_instance.post_insert_page_numbers(name, page_number, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_insert_page_numbers: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| A document name. | + **page_number** | [**PageNumber**](PageNumber.md)| with the page numbers settings. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_load_web_document** +> SaveResponse post_load_web_document(data, storage=storage) + +Loads new document from web into the file with any supported format of data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +data = asposewordscloud.LoadWebDocumentData() # LoadWebDocumentData | Parameters of loading. +storage = 'storage_example' # str | File storage, which have to be used. (optional) + +try: + # Loads new document from web into the file with any supported format of data. + api_response = api_instance.post_load_web_document(data, storage=storage) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_load_web_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **data** | [**LoadWebDocumentData**](LoadWebDocumentData.md)| Parameters of loading. | + **storage** | **str**| File storage, which have to be used. | [optional] + +### Return type + +[**SaveResponse**](SaveResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_replace_text** +> ReplaceTextResponse post_replace_text(name, replace_text, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Replace document text. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +replace_text = asposewordscloud.ReplaceTextRequest() # ReplaceTextRequest | with the replace operation settings. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Replace document text. + api_response = api_instance.post_replace_text(name, replace_text, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_replace_text: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **replace_text** | [**ReplaceTextRequest**](ReplaceTextRequest.md)| with the replace operation settings. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**ReplaceTextResponse**](ReplaceTextResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_run** +> RunResponse post_run(name, run, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Updates run's properties, returns updated run's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +run = asposewordscloud.Run() # Run | Run data. +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Updates run's properties, returns updated run's data. + api_response = api_instance.post_run(name, run, paragraph_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_run: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **run** | [**Run**](Run.md)| Run data. | + **paragraph_path** | **str**| Path to parent paragraph. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**RunResponse**](RunResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_split_document** +> SplitDocumentResponse post_split_document(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, format=format, _from=_from, to=to, zip_output=zip_output, fonts_location=fonts_location) + +Split document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | Original document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +format = 'format_example' # str | Format to split. (optional) +_from = 56 # int | Start page. (optional) +to = 56 # int | End page. (optional) +zip_output = false # bool | ZipOutput or not. (optional) (default to false) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Split document. + api_response = api_instance.post_split_document(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, format=format, _from=_from, to=to, zip_output=zip_output, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_split_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| Original document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **format** | **str**| Format to split. | [optional] + **_from** | **int**| Start page. | [optional] + **to** | **int**| End page. | [optional] + **zip_output** | **bool**| ZipOutput or not. | [optional] [default to false] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**SplitDocumentResponse**](SplitDocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_update_document_bookmark** +> BookmarkResponse post_update_document_bookmark(name, bookmark_data, bookmark_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Update document bookmark. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +bookmark_data = asposewordscloud.BookmarkData() # BookmarkData | with new bookmark data. +bookmark_name = 'bookmark_name_example' # str | The bookmark name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Update document bookmark. + api_response = api_instance.post_update_document_bookmark(name, bookmark_data, bookmark_name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_update_document_bookmark: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **bookmark_data** | [**BookmarkData**](BookmarkData.md)| with new bookmark data. | + **bookmark_name** | **str**| The bookmark name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**BookmarkResponse**](BookmarkResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **post_update_document_fields** +> DocumentResponse post_update_document_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Update (reevaluate) fields in document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Update (reevaluate) fields in document. + api_response = api_instance.post_update_document_fields(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->post_update_document_fields: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_comment** +> CommentResponse put_comment(name, comment, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Adds comment to document, returns inserted comment's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +comment = asposewordscloud.Comment() # Comment | Comment data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Adds comment to document, returns inserted comment's data. + api_response = api_instance.put_comment(name, comment, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_comment: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **comment** | [**Comment**](Comment.md)| Comment data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**CommentResponse**](CommentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_convert_document** +> file put_convert_document(document, format, storage=storage, out_path=out_path, document_file_name=document_file_name, fonts_location=fonts_location) + +Convert document from request content to format specified. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +document = '/path/to/file.txt' # file | Converting document +format = 'format_example' # str | Format to convert. +storage = 'storage_example' # str | File storage, which have to be used. (optional) +out_path = 'out_path_example' # str | Path for saving operation result to the local storage. (optional) +document_file_name = 'sourceFilename' # str | This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"sourceFilename\" will be used instead. (optional) (default to sourceFilename) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Convert document from request content to format specified. + api_response = api_instance.put_convert_document(document, format, storage=storage, out_path=out_path, document_file_name=document_file_name, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_convert_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **document** | **file**| Converting document | + **format** | **str**| Format to convert. | + **storage** | **str**| File storage, which have to be used. | [optional] + **out_path** | **str**| Path for saving operation result to the local storage. | [optional] + **document_file_name** | **str**| This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"sourceFilename\" will be used instead. | [optional] [default to sourceFilename] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_create_document** +> DocumentResponse put_create_document(storage=storage, file_name=file_name, folder=folder) + +Creates new document. Document is created with format which is recognized from file extensions. Supported extentions: \".doc\", \".docx\", \".docm\", \".dot\", \".dotm\", \".dotx\", \".flatopc\", \".fopc\", \".flatopc_macro\", \".fopc_macro\", \".flatopc_template\", \".fopc_template\", \".flatopc_template_macro\", \".fopc_template_macro\", \".wordml\", \".wml\", \".rtf\" + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +storage = 'storage_example' # str | File storage, which have to be used. (optional) +file_name = 'file_name_example' # str | The file name. (optional) +folder = 'folder_example' # str | The document folder. (optional) + +try: + # Creates new document. Document is created with format which is recognized from file extensions. Supported extentions: \".doc\", \".docx\", \".docm\", \".dot\", \".dotm\", \".dotx\", \".flatopc\", \".fopc\", \".flatopc_macro\", \".fopc_macro\", \".flatopc_template\", \".fopc_template\", \".flatopc_template_macro\", \".fopc_template_macro\", \".wordml\", \".wml\", \".rtf\" + api_response = api_instance.put_create_document(storage=storage, file_name=file_name, folder=folder) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_create_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **storage** | **str**| File storage, which have to be used. | [optional] + **file_name** | **str**| The file name. | [optional] + **folder** | **str**| The document folder. | [optional] + +### Return type + +[**DocumentResponse**](DocumentResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_document_field_names** +> FieldNamesResponse put_document_field_names(template, use_non_merge_fields=use_non_merge_fields) + +Read document field names. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +template = '/path/to/file.txt' # file | File with template +use_non_merge_fields = false # bool | Use non merge fields or not. (optional) (default to false) + +try: + # Read document field names. + api_response = api_instance.put_document_field_names(template, use_non_merge_fields=use_non_merge_fields) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_document_field_names: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **template** | **file**| File with template | + **use_non_merge_fields** | **bool**| Use non merge fields or not. | [optional] [default to false] + +### Return type + +[**FieldNamesResponse**](FieldNamesResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_document_save_as_tiff** +> SaveResponse put_document_save_as_tiff(name, save_options, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, result_file=result_file, use_anti_aliasing=use_anti_aliasing, use_high_quality_rendering=use_high_quality_rendering, image_brightness=image_brightness, image_color_mode=image_color_mode, image_contrast=image_contrast, numeral_format=numeral_format, page_count=page_count, page_index=page_index, paper_color=paper_color, pixel_format=pixel_format, resolution=resolution, scale=scale, tiff_compression=tiff_compression, dml_rendering_mode=dml_rendering_mode, dml_effects_rendering_mode=dml_effects_rendering_mode, tiff_binarization_method=tiff_binarization_method, zip_output=zip_output, fonts_location=fonts_location) + +Convert document to tiff with detailed settings and save result to storage. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +save_options = asposewordscloud.TiffSaveOptionsData() # TiffSaveOptionsData | Tiff save options. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +result_file = 'result_file_example' # str | The resulting file name. (optional) +use_anti_aliasing = true # bool | Use antialiasing flag. (optional) +use_high_quality_rendering = true # bool | Use high quality flag. (optional) +image_brightness = 1.2 # float | Brightness for the generated images. (optional) +image_color_mode = 'image_color_mode_example' # str | Color mode for the generated images. (optional) +image_contrast = 1.2 # float | The contrast for the generated images. (optional) +numeral_format = 'numeral_format_example' # str | The images numeral format. (optional) +page_count = 56 # int | Number of pages to render. (optional) +page_index = 56 # int | Page index to start rendering. (optional) +paper_color = 'paper_color_example' # str | Background image color. (optional) +pixel_format = 'pixel_format_example' # str | The pixel format of generated images. (optional) +resolution = 1.2 # float | The resolution of generated images. (optional) +scale = 1.2 # float | Zoom factor for generated images. (optional) +tiff_compression = 'tiff_compression_example' # str | The compression tipe. (optional) +dml_rendering_mode = 'dml_rendering_mode_example' # str | Optional, default is Fallback. (optional) +dml_effects_rendering_mode = 'dml_effects_rendering_mode_example' # str | Optional, default is Simplified. (optional) +tiff_binarization_method = 'tiff_binarization_method_example' # str | Optional, Tiff binarization method, possible values are: FloydSteinbergDithering, Threshold. (optional) +zip_output = true # bool | Optional. A value determining zip output or not. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Convert document to tiff with detailed settings and save result to storage. + api_response = api_instance.put_document_save_as_tiff(name, save_options, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, result_file=result_file, use_anti_aliasing=use_anti_aliasing, use_high_quality_rendering=use_high_quality_rendering, image_brightness=image_brightness, image_color_mode=image_color_mode, image_contrast=image_contrast, numeral_format=numeral_format, page_count=page_count, page_index=page_index, paper_color=paper_color, pixel_format=pixel_format, resolution=resolution, scale=scale, tiff_compression=tiff_compression, dml_rendering_mode=dml_rendering_mode, dml_effects_rendering_mode=dml_effects_rendering_mode, tiff_binarization_method=tiff_binarization_method, zip_output=zip_output, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_document_save_as_tiff: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **save_options** | [**TiffSaveOptionsData**](TiffSaveOptionsData.md)| Tiff save options. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **result_file** | **str**| The resulting file name. | [optional] + **use_anti_aliasing** | **bool**| Use antialiasing flag. | [optional] + **use_high_quality_rendering** | **bool**| Use high quality flag. | [optional] + **image_brightness** | **float**| Brightness for the generated images. | [optional] + **image_color_mode** | **str**| Color mode for the generated images. | [optional] + **image_contrast** | **float**| The contrast for the generated images. | [optional] + **numeral_format** | **str**| The images numeral format. | [optional] + **page_count** | **int**| Number of pages to render. | [optional] + **page_index** | **int**| Page index to start rendering. | [optional] + **paper_color** | **str**| Background image color. | [optional] + **pixel_format** | **str**| The pixel format of generated images. | [optional] + **resolution** | **float**| The resolution of generated images. | [optional] + **scale** | **float**| Zoom factor for generated images. | [optional] + **tiff_compression** | **str**| The compression tipe. | [optional] + **dml_rendering_mode** | **str**| Optional, default is Fallback. | [optional] + **dml_effects_rendering_mode** | **str**| Optional, default is Simplified. | [optional] + **tiff_binarization_method** | **str**| Optional, Tiff binarization method, possible values are: FloydSteinbergDithering, Threshold. | [optional] + **zip_output** | **bool**| Optional. A value determining zip output or not. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**SaveResponse**](SaveResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_drawing_object** +> DrawingObjectResponse put_drawing_object(name, drawing_object, image_file, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Adds drawing object to document, returns added drawing object's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +drawing_object = 'drawing_object_example' # str | Drawing object parameters +image_file = '/path/to/file.txt' # file | File with image +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of drawing objects. (optional) + +try: + # Adds drawing object to document, returns added drawing object's data. + api_response = api_instance.put_drawing_object(name, drawing_object, image_file, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_drawing_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **drawing_object** | **str**| Drawing object parameters | + **image_file** | **file**| File with image | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of drawing objects. | [optional] + +### Return type + +[**DrawingObjectResponse**](DrawingObjectResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_execute_mail_merge_online** +> file put_execute_mail_merge_online(template, data, with_regions=with_regions, cleanup=cleanup, document_file_name=document_file_name) + +Execute document mail merge online. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +template = '/path/to/file.txt' # file | File with template +data = '/path/to/file.txt' # file | File with mailmerge data +with_regions = false # bool | With regions flag. (optional) (default to false) +cleanup = 'cleanup_example' # str | Clean up options. (optional) +document_file_name = 'template' # str | This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. (optional) (default to template) + +try: + # Execute document mail merge online. + api_response = api_instance.put_execute_mail_merge_online(template, data, with_regions=with_regions, cleanup=cleanup, document_file_name=document_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_execute_mail_merge_online: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **template** | **file**| File with template | + **data** | **file**| File with mailmerge data | + **with_regions** | **bool**| With regions flag. | [optional] [default to false] + **cleanup** | **str**| Clean up options. | [optional] + **document_file_name** | **str**| This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. | [optional] [default to template] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_execute_template_online** +> file put_execute_template_online(template, data, cleanup=cleanup, use_whole_paragraph_as_region=use_whole_paragraph_as_region, with_regions=with_regions, document_file_name=document_file_name) + +Populate document template with data online. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +template = '/path/to/file.txt' # file | File with template +data = '/path/to/file.txt' # file | File with mailmerge data +cleanup = 'cleanup_example' # str | Clean up options. (optional) +use_whole_paragraph_as_region = true # bool | Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. (optional) (default to true) +with_regions = true # bool | Merge with regions or not. True by default (optional) (default to true) +document_file_name = 'template' # str | This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. Note: if withRegions == true executeTemplate updates fields only inside regions (optional) (default to template) + +try: + # Populate document template with data online. + api_response = api_instance.put_execute_template_online(template, data, cleanup=cleanup, use_whole_paragraph_as_region=use_whole_paragraph_as_region, with_regions=with_regions, document_file_name=document_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_execute_template_online: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **template** | **file**| File with template | + **data** | **file**| File with mailmerge data | + **cleanup** | **str**| Clean up options. | [optional] + **use_whole_paragraph_as_region** | **bool**| Gets or sets a value indicating whether paragraph with TableStart or TableEnd field should be fully included into mail merge region or particular range between TableStart and TableEnd fields. The default value is true. | [optional] [default to true] + **with_regions** | **bool**| Merge with regions or not. True by default | [optional] [default to true] + **document_file_name** | **str**| This file name will be used when resulting document has dynamic field for document file name {filename}. If it is not setted, \"template\" will be used instead. Note: if withRegions == true executeTemplate updates fields only inside regions | [optional] [default to template] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_field** +> FieldResponse put_field(name, field, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path, insert_before_node=insert_before_node) + +Adds field to document, returns inserted field's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +field = asposewordscloud.Field() # Field | Field data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of fields. (optional) +insert_before_node = 'insert_before_node_example' # str | Field will be inserted before node with id=\"nodeId\". (optional) + +try: + # Adds field to document, returns inserted field's data. + api_response = api_instance.put_field(name, field, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path, insert_before_node=insert_before_node) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **field** | [**Field**](Field.md)| Field data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of fields. | [optional] + **insert_before_node** | **str**| Field will be inserted before node with id=\"nodeId\". | [optional] + +### Return type + +[**FieldResponse**](FieldResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_footnote** +> FootnoteResponse put_footnote(name, footnote_dto, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + +Adds footnote to document, returns added footnote's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +footnote_dto = asposewordscloud.Footnote() # Footnote | Footnote data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node, which contains collection of footnotes. (optional) + +try: + # Adds footnote to document, returns added footnote's data. + api_response = api_instance.put_footnote(name, footnote_dto, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_footnote: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **footnote_dto** | [**Footnote**](Footnote.md)| Footnote data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node, which contains collection of footnotes. | [optional] + +### Return type + +[**FootnoteResponse**](FootnoteResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_form_field** +> FormFieldResponse put_form_field(name, form_field, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path, insert_before_node=insert_before_node) + +Adds form field to paragraph, returns added form field's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +form_field = asposewordscloud.FormField() # FormField | From field data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node that contains collection of formfields. (optional) +insert_before_node = 'insert_before_node_example' # str | Form field will be inserted before node with index. (optional) + +try: + # Adds form field to paragraph, returns added form field's data. + api_response = api_instance.put_form_field(name, form_field, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path, insert_before_node=insert_before_node) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_form_field: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **form_field** | [**FormField**](FormField.md)| From field data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node that contains collection of formfields. | [optional] + **insert_before_node** | **str**| Form field will be inserted before node with index. | [optional] + +### Return type + +[**FormFieldResponse**](FormFieldResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_header_footer** +> HeaderFooterResponse put_header_footer(name, header_footer_type, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, section_path=section_path) + +Insert to document header or footer. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +header_footer_type = 'header_footer_type_example' # str | Type of header/footer. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +section_path = 'section_path_example' # str | Path to parent section. (optional) + +try: + # Insert to document header or footer. + api_response = api_instance.put_header_footer(name, header_footer_type, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, section_path=section_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_header_footer: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **header_footer_type** | **str**| Type of header/footer. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **section_path** | **str**| Path to parent section. | [optional] + +### Return type + +[**HeaderFooterResponse**](HeaderFooterResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_paragraph** +> ParagraphResponse put_paragraph(name, paragraph, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path, insert_before_node=insert_before_node) + +Adds paragraph to document, returns added paragraph's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +paragraph = asposewordscloud.ParagraphInsert() # ParagraphInsert | Paragraph data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +node_path = 'node_path_example' # str | Path to node which contains paragraphs. (optional) +insert_before_node = 'insert_before_node_example' # str | Paragraph will be inserted before node with index. (optional) + +try: + # Adds paragraph to document, returns added paragraph's data. + api_response = api_instance.put_paragraph(name, paragraph, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, node_path=node_path, insert_before_node=insert_before_node) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_paragraph: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **paragraph** | [**ParagraphInsert**](ParagraphInsert.md)| Paragraph data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **node_path** | **str**| Path to node which contains paragraphs. | [optional] + **insert_before_node** | **str**| Paragraph will be inserted before node with index. | [optional] + +### Return type + +[**ParagraphResponse**](ParagraphResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_protect_document** +> ProtectionDataResponse put_protect_document(name, protection_request, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Protect document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +protection_request = asposewordscloud.ProtectionRequest() # ProtectionRequest | with protection settings. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Protect document. + api_response = api_instance.put_protect_document(name, protection_request, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_protect_document: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **protection_request** | [**ProtectionRequest**](ProtectionRequest.md)| with protection settings. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**ProtectionDataResponse**](ProtectionDataResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **put_run** +> RunResponse put_run(name, paragraph_path, run, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, insert_before_node=insert_before_node) + +Adds run to document, returns added paragraph's data. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +paragraph_path = 'paragraph_path_example' # str | Path to parent paragraph. +run = asposewordscloud.Run() # Run | Run data. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +insert_before_node = 'insert_before_node_example' # str | Paragraph will be inserted before node with index. (optional) + +try: + # Adds run to document, returns added paragraph's data. + api_response = api_instance.put_run(name, paragraph_path, run, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, insert_before_node=insert_before_node) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->put_run: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **paragraph_path** | **str**| Path to parent paragraph. | + **run** | [**Run**](Run.md)| Run data. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **insert_before_node** | **str**| Paragraph will be inserted before node with index. | [optional] + +### Return type + +[**RunResponse**](RunResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **reject_all_revisions** +> RevisionsModificationResponse reject_all_revisions(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + +Reject all revisions in document + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) + +try: + # Reject all revisions in document + api_response = api_instance.reject_all_revisions(name, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->reject_all_revisions: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + +### Return type + +[**RevisionsModificationResponse**](RevisionsModificationResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **render_drawing_object** +> file render_drawing_object(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + +Renders drawing object to specified format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +format = 'format_example' # str | The destination format. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains drawing objects. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Renders drawing object to specified format. + api_response = api_instance.render_drawing_object(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->render_drawing_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **format** | **str**| The destination format. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains drawing objects. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **render_math_object** +> file render_math_object(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + +Renders math object to specified format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +format = 'format_example' # str | The destination format. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains office math objects. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Renders math object to specified format. + api_response = api_instance.render_math_object(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->render_math_object: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **format** | **str**| The destination format. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains office math objects. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **render_page** +> file render_page(name, page_index, format, folder=folder, storage=storage, load_encoding=load_encoding, password=password, fonts_location=fonts_location) + +Renders page to specified format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +page_index = 56 # int | Comment index +format = 'format_example' # str | The destination format. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Renders page to specified format. + api_response = api_instance.render_page(name, page_index, format, folder=folder, storage=storage, load_encoding=load_encoding, password=password, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->render_page: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **page_index** | **int**| Comment index | + **format** | **str**| The destination format. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **render_paragraph** +> file render_paragraph(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + +Renders paragraph to specified format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +format = 'format_example' # str | The destination format. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains paragraphs. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Renders paragraph to specified format. + api_response = api_instance.render_paragraph(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->render_paragraph: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **format** | **str**| The destination format. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains paragraphs. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **render_table** +> file render_table(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + +Renders table to specified format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The file name. +format = 'format_example' # str | The destination format. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) +fonts_location = 'fonts_location_example' # str | Folder in filestorage with custom fonts. (optional) + +try: + # Renders table to specified format. + api_response = api_instance.render_table(name, format, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, node_path=node_path, fonts_location=fonts_location) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->render_table: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The file name. | + **format** | **str**| The destination format. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + **fonts_location** | **str**| Folder in filestorage with custom fonts. | [optional] + +### Return type + +[**file**](file.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **reset_cache** +> AsposeResponse reset_cache() + +Resets font's cache. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() + +try: + # Resets font's cache. + api_response = api_instance.reset_cache() + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->reset_cache: %s\n" % e) +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**AsposeResponse**](AsposeResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **search** +> SearchResponse search(name, pattern, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + +Search text in document. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +pattern = 'pattern_example' # str | The regular expression used to find matches. +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) + +try: + # Search text in document. + api_response = api_instance.search(name, pattern, folder=folder, storage=storage, load_encoding=load_encoding, password=password) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->search: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **pattern** | **str**| The regular expression used to find matches. | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + +### Return type + +[**SearchResponse**](SearchResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_border** +> BorderResponse update_border(name, border_properties, node_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Updates border properties. + +'nodePath' should refer to node with cell or row + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +border_properties = asposewordscloud.Border() # Border | Border properties +node_path = 'node_path_example' # str | Path to node with border(node should be cell or row). +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Updates border properties. + api_response = api_instance.update_border(name, border_properties, node_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->update_border: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **border_properties** | [**Border**](Border.md)| Border properties | + **node_path** | **str**| Path to node with border(node should be cell or row). | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**BorderResponse**](BorderResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_section_page_setup** +> SectionPageSetupResponse update_section_page_setup(name, section_index, page_setup, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + +Update page setup of section. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +section_index = 56 # int | Section index +page_setup = asposewordscloud.PageSetup() # PageSetup | Page setup properties dto +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) + +try: + # Update page setup of section. + api_response = api_instance.update_section_page_setup(name, section_index, page_setup, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->update_section_page_setup: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **section_index** | **int**| Section index | + **page_setup** | [**PageSetup**](PageSetup.md)| Page setup properties dto | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + +### Return type + +[**SectionPageSetupResponse**](SectionPageSetupResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_table_cell_format** +> TableCellFormatResponse update_table_cell_format(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, format=format) + +Updates a table cell format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_row_path = 'table_row_path_example' # str | Path to table row. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +format = asposewordscloud.TableCellFormat() # TableCellFormat | The properties. (optional) + +try: + # Updates a table cell format. + api_response = api_instance.update_table_cell_format(name, table_row_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, format=format) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->update_table_cell_format: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_row_path** | **str**| Path to table row. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **format** | [**TableCellFormat**](TableCellFormat.md)| The properties. | [optional] + +### Return type + +[**TableCellFormatResponse**](TableCellFormatResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_table_properties** +> TablePropertiesResponse update_table_properties(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, properties=properties, node_path=node_path) + +Updates a table properties. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +properties = asposewordscloud.TableProperties() # TableProperties | The properties. (optional) +node_path = 'node_path_example' # str | Path to node, which contains tables. (optional) + +try: + # Updates a table properties. + api_response = api_instance.update_table_properties(name, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, properties=properties, node_path=node_path) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->update_table_properties: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **properties** | [**TableProperties**](TableProperties.md)| The properties. | [optional] + **node_path** | **str**| Path to node, which contains tables. | [optional] + +### Return type + +[**TablePropertiesResponse**](TablePropertiesResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_table_row_format** +> TableRowFormatResponse update_table_row_format(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, format=format) + +Updates a table row format. + +### Example +```python +from __future__ import print_function +import time +import asposewordscloud +from asposewordscloud.rest import ApiException +from pprint import pprint + +# create an instance of the API class +api_instance = asposewordscloud.WordsApi() +name = 'name_example' # str | The document name. +table_path = 'table_path_example' # str | Path to table. +index = 56 # int | Object's index +folder = 'folder_example' # str | Original document folder. (optional) +storage = 'storage_example' # str | File storage, which have to be used. (optional) +load_encoding = 'load_encoding_example' # str | Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. (optional) +password = 'password_example' # str | Password for opening an encrypted document. (optional) +dest_file_name = 'dest_file_name_example' # str | Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. (optional) +revision_author = 'revision_author_example' # str | Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. (optional) +revision_date_time = 'revision_date_time_example' # str | The date and time to use for revisions. (optional) +format = asposewordscloud.TableRowFormat() # TableRowFormat | Table row format. (optional) + +try: + # Updates a table row format. + api_response = api_instance.update_table_row_format(name, table_path, index, folder=folder, storage=storage, load_encoding=load_encoding, password=password, dest_file_name=dest_file_name, revision_author=revision_author, revision_date_time=revision_date_time, format=format) + pprint(api_response) +except ApiException as e: + print("Exception when calling WordsApi->update_table_row_format: %s\n" % e) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **name** | **str**| The document name. | + **table_path** | **str**| Path to table. | + **index** | **int**| Object's index | + **folder** | **str**| Original document folder. | [optional] + **storage** | **str**| File storage, which have to be used. | [optional] + **load_encoding** | **str**| Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML. | [optional] + **password** | **str**| Password for opening an encrypted document. | [optional] + **dest_file_name** | **str**| Result name of the document after the operation. If this parameter is omitted then result of the operation will be saved as the source document. | [optional] + **revision_author** | **str**| Initials of the author to use for revisions.If you set this parameter and then make some changes to the document programmatically, save the document and later open the document in MS Word you will see these changes as revisions. | [optional] + **revision_date_time** | **str**| The date and time to use for revisions. | [optional] + **format** | [**TableRowFormat**](TableRowFormat.md)| Table row format. | [optional] + +### Return type + +[**TableRowFormatResponse**](TableRowFormatResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/xml, application/json + - **Accept**: application/xml, application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/WordsApiErrorResponse.md b/docs/WordsApiErrorResponse.md new file mode 100644 index 00000000..39b9a924 --- /dev/null +++ b/docs/WordsApiErrorResponse.md @@ -0,0 +1,12 @@ +# WordsApiErrorResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **int** | Response status code. | +**status** | **str** | Response status. | [optional] +**message** | **str** | Error message. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/WordsApiLink.md b/docs/WordsApiLink.md new file mode 100644 index 00000000..393a4f5c --- /dev/null +++ b/docs/WordsApiLink.md @@ -0,0 +1,13 @@ +# WordsApiLink + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**href** | **str** | The \"href\" attribute contains the link's IRI. atom:link elements MUST have an href attribute, whose value MUST be a IRI reference | [optional] +**rel** | **str** | atom:link elements MAY have a \"rel\" attribute that indicates the link relation type. If the \"rel\" attribute is not present, the link element MUST be interpreted as if the link relation type is \"alternate\". | [optional] +**type** | **str** | On the link element, the \"type\" attribute's value is an advisory media type: it is a hint about the type of the representation that is expected to be returned when the value of the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation. | [optional] +**title** | **str** | The \"title\" attribute conveys human-readable information about the link. The content of the \"title\" attribute is Language-Sensitive. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/XamlFixedSaveOptionsData.md b/docs/XamlFixedSaveOptionsData.md new file mode 100644 index 00000000..3975ddff --- /dev/null +++ b/docs/XamlFixedSaveOptionsData.md @@ -0,0 +1,26 @@ +# XamlFixedSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**resources_folder** | **str** | Specifies the physical folder where resources (images and fonts) are saved when exporting a document to fixed page Xaml format. Default is null. | [optional] +**resources_folder_alias** | **str** | Specifies the name of the folder used to construct image URIs written into an fixed page Xaml document. Default is null. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/XamlFlowSaveOptionsData.md b/docs/XamlFlowSaveOptionsData.md new file mode 100644 index 00000000..7aa05460 --- /dev/null +++ b/docs/XamlFlowSaveOptionsData.md @@ -0,0 +1,20 @@ +# XamlFlowSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**images_folder** | **str** | Specifies the physical folder where images are saved when exporting | [optional] +**images_folder_alias** | **str** | Specifies the name of the folder used to construct image URIs | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/XmlColor.md b/docs/XmlColor.md new file mode 100644 index 00000000..7832875a --- /dev/null +++ b/docs/XmlColor.md @@ -0,0 +1,11 @@ +# XmlColor + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**web** | **str** | HTML string color representation | [optional] +**alpha** | **int** | Alpha component of color structure | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/XpsSaveOptionsData.md b/docs/XpsSaveOptionsData.md new file mode 100644 index 00000000..68944e45 --- /dev/null +++ b/docs/XpsSaveOptionsData.md @@ -0,0 +1,28 @@ +# XpsSaveOptionsData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**color_mode** | **str** | Gets or sets a value determining how colors are rendered. { Normal | Grayscale} | [optional] +**save_format** | **str** | format of save | [optional] +**file_name** | **str** | name of destination file | [optional] +**dml_rendering_mode** | **str** | Gets or sets a value determining how DrawingML shapes are rendered. { Fallback | DrawingML } | [optional] +**dml_effects_rendering_mode** | **str** | Gets or sets a value determining how DrawingML effects are rendered. { Simplified | None | Fine } | [optional] +**zip_output** | **bool** | Controls zip output or not. Default value is false. | [optional] +**update_last_saved_time_property** | **bool** | Gets or sets a value determining whether the Aspose.Words.Properties.BuiltInDocumentProperties.LastSavedTime property is updated before saving. | [optional] +**update_sdt_content** | **bool** | Gets or sets value determining whether content of is updated before saving. | [optional] +**update_fields** | **bool** | Gets or sets a value determining if fields should be updated before saving the document to a fixed page format. Default value for this property is true | [optional] +**jpeg_quality** | **int** | Determines the quality of the JPEG images inside PDF document. | [optional] +**metafile_rendering_options** | [**MetafileRenderingOptionsData**](MetafileRenderingOptionsData.md) | Allows to specify metafile rendering options. | [optional] +**numeral_format** | **str** | Indicates the symbol set that is used to represent numbers while rendering to fixed page formats | [optional] +**optimize_output** | **bool** | Flag indicates whether it is required to optimize output of XPS. If this flag is set redundant nested canvases and empty canvases are removed, also neighbor glyphs with the same formatting are concatenated. Note: The accuracy of the content display may be affected if this property is set to true. Default is false. | [optional] +**page_count** | **int** | Determines number of pages to render | [optional] +**page_index** | **int** | Determines 0-based index of the first page to render | [optional] +**bookmarks_outline_level** | **int** | Specifies the level in the XPS document outline at which to display Word bookmarks. | [optional] +**headings_outline_levels** | **int** | Specifies how many levels of headings (paragraphs formatted with the Heading styles) to include in the XPS document outline. | [optional] +**outline_options** | [**OutlineOptionsData**](OutlineOptionsData.md) | Allows to specify outline options | [optional] +**use_book_fold_printing_settings** | **bool** | Determines whether the document should be saved using a booklet printing layout | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/git_push.sh b/git_push.sh new file mode 100644 index 00000000..ed374619 --- /dev/null +++ b/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git crediential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..bafdc075 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +certifi >= 14.05.14 +six >= 1.10 +python_dateutil >= 2.5.3 +setuptools >= 21.0.0 +urllib3 >= 1.15.1 diff --git a/scripts/runTests.bat b/scripts/runTests.bat new file mode 100644 index 00000000..acbac5db --- /dev/null +++ b/scripts/runTests.bat @@ -0,0 +1 @@ +docker run --rm -v %cd%:/opt/project -w="/opt/project" python:3.6 /bin/bash test.sh \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..56abfd56 --- /dev/null +++ b/setup.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +""" + Aspose.Words for Cloud API Reference + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: 18.5.0 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from setuptools import setup, find_packages # noqa: H301 + +NAME = "asposewordscloud" +VERSION = "18.6" +# To install the library, run the following +# +# python setup.py install +# +# prerequisite: setuptools +# http://pypi.python.org/pypi/setuptools + +REQUIRES = ["urllib3 >= 1.15", "six >= 1.10", "certifi", "python-dateutil"] +TEST_REQUIRES = ['asposestoragecloud >=1.0.5'] + +setup( + name=NAME, + version=VERSION, + description="Aspose.Words for Cloud API Reference", + author_email="yaroslaw.ekimov@aspose.com", + url="https://github.com/aspose-words-cloud", + keywords=["aspose", "python", "aspose cloud"], + install_requires=REQUIRES, + tests_require=TEST_REQUIRES, + packages=find_packages(), + include_package_data=True, + long_description="""\ + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + """ +) diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 00000000..46d91403 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1 @@ +asposestoragecloud==1.0.8 diff --git a/test.sh b/test.sh new file mode 100644 index 00000000..3747408d --- /dev/null +++ b/test.sh @@ -0,0 +1,2 @@ +!#bin/bash +pip install -r requirements.txt && pip install --index-url https://testpypi.python.org/pypi asposestoragecloud==1.0.8 && python -m unittest discover -v -s . \ No newline at end of file diff --git a/test/Common/__init__.py b/test/Common/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/Common/test_api_coverage.py b/test/Common/test_api_coverage.py new file mode 100644 index 00000000..dee5a055 --- /dev/null +++ b/test/Common/test_api_coverage.py @@ -0,0 +1,61 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import test +import asposewordscloud.apis.words_api +from test.base_test_context import BaseTestContext + + +class TestApiCoverage(BaseTestContext): + + def test_api_coverage(self): + arr = [test.TestBookmarks, test.TestAppendDocument, test.TestComments, test.TestCompareDocument, + test.TestConvertDocument, + test.TestDocumentStatistics, test.TestDocument, test.TestLoadWebDocument, test.TestRevisions, + test.TestSplitDocument, test.TestDocumentProperties, test.TestDocumentProtection, + test.TestDrawingObjects, test.TestFields, + test.TestFormField, test.TestMailMergeFields, test.TestFootnote, test.TestHeaderFooter, + test.TestHyperlinks, test.TestMacros, + test.TestExecuteMailMerge, test.TestExecuteTemplate, test.TestMathObjects, test.TestPages, + test.TestParagraphs, test.TestRuns, + test.TestSections, test.TestTables, test.TestText, test.TestWatermarks, test.TestFontCache, + test.TestClassification] + test_methods = [] + uncovered_methods = [] + for ar in arr: + test_methods += list(filter(lambda x: not (x.startswith('__') and x.endswith('__')) and x != 'test_folder', + ar.__dict__.keys())) + api_methods = list(filter(lambda x: not (x.startswith('__') and x.endswith('__')) + and not x.endswith('with_http_info') + and not x.endswith('letter') + and not x.endswith('token'), + asposewordscloud.WordsApi.__dict__.keys())) + for api_method in api_methods: + if not 'test_' + api_method in test_methods: + uncovered_methods += api_method + self.assertTrue(len(uncovered_methods) == 0, + "There are methods you have to cover with tests " + ''.join(uncovered_methods)) diff --git a/test/Common/test_error_handling.py b/test/Common/test_error_handling.py new file mode 100644 index 00000000..cd93ee88 --- /dev/null +++ b/test/Common/test_error_handling.py @@ -0,0 +1,46 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + + +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext +from asposewordscloud.rest import ApiException + + +class TestErrorHandling(BaseTestContext): + + # + # Test for checking handle of server errors + # + def test_handle_server_errors(self): + remote_name = 'noFileWithThisName.docx' + request = asposewordscloud.models.requests.GetSectionRequest(remote_name, '') + try: + self.words_api.get_section(request) + self.assertRaises(ApiException) + except ApiException as e: + self.assertTrue(e.status == 400, 'Error while testing handle server error') diff --git a/test/Common/test_font_cache.py b/test/Common/test_font_cache.py new file mode 100644 index 00000000..c09ac3fe --- /dev/null +++ b/test/Common/test_font_cache.py @@ -0,0 +1,41 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + + +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestFontCache(BaseTestContext): + + # + # Test for resetting font cache + # + def test_reset_cache(self): + request = asposewordscloud.models.requests.ResetCacheRequest() + result = self.words_api.reset_cache(request) + self.assertTrue(result.code == 200, 'Error has occurred while reset font cache') diff --git a/test/Document/__init__.py b/test/Document/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/Document/test_document.py b/test/Document/test_document.py new file mode 100644 index 00000000..3122646a --- /dev/null +++ b/test/Document/test_document.py @@ -0,0 +1,65 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestDocument(BaseTestContext): + test_folder = 'document' + + # + # Test for getting document + # + def test_get_document(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocument.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.GetDocumentRequest(remote_name, os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document') + + # + # Test for creating document + # + def test_put_create_document(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutCreateDocument.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PutCreateDocumentRequest(None, remote_name, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_create_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while create document') diff --git a/test/DocumentActions/__init__.py b/test/DocumentActions/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/DocumentActions/test_append_document.py b/test/DocumentActions/test_append_document.py new file mode 100644 index 00000000..83ce794b --- /dev/null +++ b/test/DocumentActions/test_append_document.py @@ -0,0 +1,55 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestAppendDocument(BaseTestContext): + test_folder = 'DocumentActions/AppendDocument' + + # + # Test for appending document + # + def test_post_append_document(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostAppendDocument.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + doc_entry = asposewordscloud.DocumentEntry(os.path.join(self.remote_test_folder, self.test_folder, remote_name), + 'KeepSourceFormatting') + body = asposewordscloud.DocumentEntryList([doc_entry]) + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PostAppendDocumentRequest(remote_name, body, + os.path.join(self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_append_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while append document') diff --git a/test/DocumentActions/test_classification.py b/test/DocumentActions/test_classification.py new file mode 100644 index 00000000..95922c46 --- /dev/null +++ b/test/DocumentActions/test_classification.py @@ -0,0 +1,57 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestClassification(BaseTestContext): + test_folder = 'Common' + + # + # Test for raw text classification + # + def test_classify(self): + request = asposewordscloud.models.requests.ClassifyRequest('Try text classification', '3') + result = self.words_api.classify(request) + self.assertTrue(result.code == 200, 'Error has occurred while classify text') + + # + # Test for document classification + # + def test_classify_document(self): + filename = "test_multi_pages.docx" + remote_name = "Source.docx" + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.ClassifyDocumentRequest(remote_name, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.classify_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while classify document') diff --git a/test/DocumentActions/test_compare_document.py b/test/DocumentActions/test_compare_document.py new file mode 100644 index 00000000..f7037ce8 --- /dev/null +++ b/test/DocumentActions/test_compare_document.py @@ -0,0 +1,60 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import datetime +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestCompareDocument(BaseTestContext): + test_folder = 'DocumentActions/CompareDocument' + + # + # Test for document comparison + # + def test_post_compare_document(self): + local_name1 = "compareTestDoc1.doc" + local_name2 = "compareTestDoc2.doc" + remote_name1 = "TestPostCompareDocument1.doc" + remote_name2 = "TestPostCompareDocument2.doc" + dest_name = os.path.join(self.remote_test_out, 'TestCompareOut.doc') + compare_data = asposewordscloud.CompareData(os.path.join(self.remote_test_folder, self.test_folder, remote_name2), + 'author', datetime.datetime.now()) + with open(os.path.join(self.local_test_folder, self.test_folder, local_name1), 'rb') as f: + file1 = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name1), file1) + with open(os.path.join(self.local_test_folder, self.test_folder, local_name2), 'rb') as f: + file2 = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name2), file2) + + request = asposewordscloud.models.requests.PostCompareDocumentRequest(remote_name1, compare_data, + os.path.join(self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_compare_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while compare document') diff --git a/test/DocumentActions/test_convert_document.py b/test/DocumentActions/test_convert_document.py new file mode 100644 index 00000000..2af2b078 --- /dev/null +++ b/test/DocumentActions/test_convert_document.py @@ -0,0 +1,136 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestConvertDocument(BaseTestContext): + test_folder = 'DocumentActions/ConvertDocument' + + # + # Test for saving document with specified format + # + def test_post_document_save_as(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostDocumentSaveAs.docx' + dest_name = os.path.join(self.remote_test_out, 'TestPostDocumentSaveAs.pdf') + save_options = asposewordscloud.SaveOptionsData(save_format='pdf', file_name=dest_name) + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PostDocumentSaveAsRequest(remote_name, save_options, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_document_save_as(request) + self.assertTrue(result.code == 200, 'Error has occurred while convert document') + + # + # Test for saving document with specified format + # + def test_post_save_document_as_from_pdf_to_doc(self): + filename = '45.pdf' + remote_name = 'TestPostDocumentSaveAsFromPdfToDoc.docx' + dest_name = os.path.join(self.remote_test_out, 'TestPostDocumentSaveAs.docx') + save_options = asposewordscloud.SaveOptionsData(save_format='docx', file_name=dest_name) + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PostDocumentSaveAsRequest(remote_name, save_options, + os.path.join(self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_document_save_as(request) + self.assertTrue(result.code == 200, 'Error has occurred while convert document') + + # + # Test for document conversion without storage + # + def test_put_convert_document(self): + _format = 'pdf' + filename = 'test_multi_pages.docx' + request = asposewordscloud.models.requests.PutConvertDocumentRequest(os.path.join(self.local_common_folder, + filename), + _format) + result = self.words_api.put_convert_document(request) + self.assertTrue(len(result) > 0, 'Error has occurred while convert document') + + # + # Test for saving document with specified format + # + def test_put_document_save_as_tiff(self): + filename = '45.pdf' + remote_name = 'TestPutDocumentSaveAsTiff.docx' + dest_name = os.path.join(self.remote_test_out, 'TestPostDocumentSaveAsTiff.tiff') + save_options = asposewordscloud.SaveOptionsData(save_format='tiff', file_name=dest_name) + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PutDocumentSaveAsTiffRequest(remote_name, save_options, + os.path.join(self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.put_document_save_as_tiff(request) + self.assertTrue(result.code == 200, 'Error has occurred while convert document') + + # + # Test for saving document with specified format + # + def test_get_document_with_format(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentWithFormat.docx' + _format = 'text' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentWithFormatRequest(remote_name, _format, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_with_format(request) + self.assertTrue(len(result) > 0, 'Error has occurred while convert document') + + # + # Test for saving document with specified format + # + def test_get_document_with_format_and_out_path(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentWithFormat.docx' + _format = 'text' + out_path = os.path.join(self.remote_test_out, remote_name) + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentWithFormatRequest(remote_name, _format, + os.path.join(self.remote_test_folder, + self.test_folder), + out_path=out_path) + result = self.words_api.get_document_with_format(request) + self.assertTrue(len(result) > 0, 'Error has occurred while convert document') diff --git a/test/DocumentActions/test_document_protection.py b/test/DocumentActions/test_document_protection.py new file mode 100644 index 00000000..68c7164b --- /dev/null +++ b/test/DocumentActions/test_document_protection.py @@ -0,0 +1,103 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestDocumentProtection(BaseTestContext): + test_folder = 'DocumentActions/DocumentProtection' + + # + # Test for getting document protection + # + def test_get_document_protection(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentProtection.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.GetDocumentProtectionRequest(remote_name, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_protection(request) + self.assertTrue(result.code == 200, 'Error has occurred while get protect document') + + # + # Test for inserting document protection + # + def test_put_protect_document(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutProtectDocument.docx' + body = asposewordscloud.ProtectionRequest(new_password='123') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PutProtectDocumentRequest(remote_name, body, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_protect_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while put protect document') + + # + # Test for updating document protection + # + def test_post_change_document_protection(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostChangeDocumentProtection.docx' + body = asposewordscloud.ProtectionRequest(new_password='') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.PostChangeDocumentProtectionRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_change_document_protection(request) + self.assertTrue(result.code == 200, 'Error has occurred while put protect document') + + # + # Test for removing document protection + # + def test_delete_unprotect_document(self): + filename = 'SampleProtectedBlankWordDocument.docx' + remote_name = 'TestDeleteUnprotectDocument.docx' + body = asposewordscloud.ProtectionRequest('aspose') + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + + request = asposewordscloud.models.requests.DeleteUnprotectDocumentRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_unprotect_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while put protect document') diff --git a/test/DocumentActions/test_document_statistics.py b/test/DocumentActions/test_document_statistics.py new file mode 100644 index 00000000..2d8b4df5 --- /dev/null +++ b/test/DocumentActions/test_document_statistics.py @@ -0,0 +1,49 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestDocumentStatistics(BaseTestContext): + test_folder = 'DocumentActions/DocumentStatistics' + + # + # Test for getting document statistics + # + def test_get_document_statistics(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentStatistics.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentStatisticsRequest(remote_name, + os.path.join(self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_statistics(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document statistics') diff --git a/test/DocumentActions/test_execute_mail_merge.py b/test/DocumentActions/test_execute_mail_merge.py new file mode 100644 index 00000000..bd359c37 --- /dev/null +++ b/test/DocumentActions/test_execute_mail_merge.py @@ -0,0 +1,65 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestExecuteMailMerge(BaseTestContext): + test_folder = 'DocumentActions/MailMerge' + + # + # Test for mail merge execution + # + def test_post_document_execute_mail_merge(self): + filename = 'SampleMailMergeTemplate.docx' + remote_name = 'TestPostDocumentExecuteMailMerge.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + with open(os.path.join(self.local_test_folder, self.test_folder, 'SampleMailMergeTemplateData.txt')) as f: + data = f.read() + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostDocumentExecuteMailMergeRequest(remote_name, data, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_document_execute_mail_merge(request) + self.assertTrue(result.code == 200, 'Error has occurred while execute mail merge') + + # + # Test for executing mail merge online + # + def test_put_execute_mail_merge_online(self): + filename = 'SampleMailMergeTemplate.docx' + file = os.path.join(self.local_test_folder, self.test_folder, filename) + data = os.path.join(self.local_test_folder, self.test_folder, 'SampleMailMergeTemplateData.txt') + request = asposewordscloud.models.requests.PutExecuteMailMergeOnlineRequest(file, data) + result = self.words_api.put_execute_mail_merge_online(request) + self.assertTrue(len(result) > 0, 'Error has occurred while execute mail merge') diff --git a/test/DocumentActions/test_execute_template.py b/test/DocumentActions/test_execute_template.py new file mode 100644 index 00000000..038f2271 --- /dev/null +++ b/test/DocumentActions/test_execute_template.py @@ -0,0 +1,65 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestExecuteTemplate(BaseTestContext): + test_folder = 'DocumentActions/MailMerge' + + # + # Test for executing template + # + def test_post_execute_template(self): + filename = 'TestExecuteTemplate.doc' + remote_name = 'TestPostExecuteTemplate.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + with open(os.path.join(self.local_test_folder, self.test_folder, 'TestExecuteTemplateData.txt')) as f: + data = f.read() + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostExecuteTemplateRequest(remote_name, data, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_execute_template(request) + self.assertTrue(result.code == 200, 'Error has occurred while execute template') + + # + # Test for executing template online + # + def test_put_execute_template_online(self): + filename = 'SampleExecuteTemplate.docx' + file = os.path.join(self.local_test_folder, self.test_folder, filename) + data = os.path.join(self.local_test_folder, self.test_folder, 'SampleExecuteTemplateData.txt') + request = asposewordscloud.models.requests.PutExecuteTemplateOnlineRequest(file, data) + result = self.words_api.put_execute_template_online(request) + self.assertTrue(len(result) > 0, 'Error has occurred while execute template') diff --git a/test/DocumentActions/test_load_web_document.py b/test/DocumentActions/test_load_web_document.py new file mode 100644 index 00000000..e14c84a6 --- /dev/null +++ b/test/DocumentActions/test_load_web_document.py @@ -0,0 +1,43 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestLoadWebDocument(BaseTestContext): + test_folder = 'DocumentActions/LoadWebDocument' + + # + # Test for loading web document + # + def test_post_load_web_document(self): + save_options = asposewordscloud.SaveOptionsData('1', 'doc', 'google.doc', '1', '1', False, False) + body = asposewordscloud.LoadWebDocumentData('http://google.com', save_options) + request = asposewordscloud.models.requests.PostLoadWebDocumentRequest(body) + result = self.words_api.post_load_web_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while load document') diff --git a/test/DocumentActions/test_mail_merge_fields.py b/test/DocumentActions/test_mail_merge_fields.py new file mode 100644 index 00000000..d635a37a --- /dev/null +++ b/test/DocumentActions/test_mail_merge_fields.py @@ -0,0 +1,59 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestMailMergeFields(BaseTestContext): + test_folder = 'DocumentActions/MailMerge' + + # + # Test for getting document field names + # + def test_get_document_field_names(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentFieldNames.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentFieldNamesRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_field_names(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document field names') + + # + # Test for inserting document field names + # + def test_put_document_field_names(self): + file = os.path.join(self.local_test_folder, self.test_folder, 'SampleExecuteTemplate.docx') + request = asposewordscloud.models.requests.PutDocumentFieldNamesRequest(file, True) + result = self.words_api.put_document_field_names(request) + self.assertTrue(result.code == 200, 'Error has occurred while put document field') diff --git a/test/DocumentActions/test_revisions.py b/test/DocumentActions/test_revisions.py new file mode 100644 index 00000000..f6eb266a --- /dev/null +++ b/test/DocumentActions/test_revisions.py @@ -0,0 +1,66 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestRevisions(BaseTestContext): + test_folder = 'DocumentActions/Revisions' + + # + # Test for accepting all revisions + # + def test_accept_all_revisions(self): + filename = 'test_doc.docx' + remote_name = 'TestAcceptAllRevisions.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.AcceptAllRevisionsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.accept_all_revisions(request) + self.assertTrue(result.code == 200, 'Error has occurred while accept revisions') + + # + # Test for rejecting all revisions + # + def test_reject_all_revisions(self): + filename = 'test_doc.docx' + remote_name = 'TestRejectAllRevisions.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.RejectAllRevisionsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.reject_all_revisions(request) + self.assertTrue(result.code == 200, 'Error has occurred while accept revisions') diff --git a/test/DocumentActions/test_split_document.py b/test/DocumentActions/test_split_document.py new file mode 100644 index 00000000..7e82e02a --- /dev/null +++ b/test/DocumentActions/test_split_document.py @@ -0,0 +1,57 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestSplitDocument(BaseTestContext): + test_folder = 'DocumentActions/SplitDocument' + + # + # Test for splitting document + # + def test_post_split_document(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostSplitDocument.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + _format = 'text' + _from = 1 + _to = 2 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostSplitDocumentRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder), + format=_format, _from=_from, to=_to, + dest_file_name=dest_name) + result = self.words_api.post_split_document(request) + self.assertTrue(result.code == 200, 'Error has occurred while split document') + diff --git a/test/DocumentElements/__init__.py b/test/DocumentElements/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/DocumentElements/test_bookmarks.py b/test/DocumentElements/test_bookmarks.py new file mode 100644 index 00000000..895422fc --- /dev/null +++ b/test/DocumentElements/test_bookmarks.py @@ -0,0 +1,87 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestBookmarks(BaseTestContext): + test_folder = 'DocumentElements/Bookmarks' + + # + # Test for getting document bookmark by name + # + def test_get_document_bookmark_by_name(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentBookmarkByName.docx' + bookmark_name = 'aspose' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentBookmarkByNameRequest(remote_name, bookmark_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_bookmark_by_name(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document bookmark by name') + + # + # Test for getting all bookmarks from document + # + def test_get_document_bookmarks(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentBookmarks.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentBookmarksRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_bookmarks(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document bookmarks') + + # + # Test for updating document bookmark + # + def test_post_update_document_bookmark(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostUpdateDocumentBookmark.docx' + bookmark_name = 'aspose' + dest_name = os.path.join(self.remote_test_out, remote_name) + body = asposewordscloud.BookmarkData(bookmark_name, 'This will be the text for Aspose') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostUpdateDocumentBookmarkRequest(remote_name, body, bookmark_name, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_update_document_bookmark(request) + self.assertTrue(result.code == 200, 'Error has occurred while update document bookmark') diff --git a/test/DocumentElements/test_comments.py b/test/DocumentElements/test_comments.py new file mode 100644 index 00000000..263836b4 --- /dev/null +++ b/test/DocumentElements/test_comments.py @@ -0,0 +1,125 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestComments(BaseTestContext): + test_folder = 'DocumentElements/Comments' + + # + # Test for deleting comment + # + def test_delete_comment(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestDeleteComment.docx' + comment_index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteCommentRequest(remote_name, comment_index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_comment(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete comment') + + # + # Test for getting comment + # + def test_get_comment(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetComment.docx' + comment_index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetCommentRequest(remote_name, comment_index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_comment(request) + self.assertTrue(result.code == 200, 'Error has occurred while get comment') + + # + # Test for getting comment + # + def test_get_comments(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetComments.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetCommentsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_comments(request) + self.assertTrue(result.code == 200, 'Error has occurred while get comments') + + # + # Test for updating comment + # + def test_post_comment(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostComment.docx' + comment_index = 0 + node_link = asposewordscloud.NodeLink(None, '0.0.3') + doc_pos = asposewordscloud.DocumentPosition(node_link, 0) + body = asposewordscloud.Comment(None, 'Yaroslav Ekimov', initial='YE', range_start=doc_pos, range_end=doc_pos, + text='A new comment') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostCommentRequest(remote_name, comment_index, body, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_comment(request) + self.assertTrue(result.code == 200, 'Error has occurred while post comment') + + # + # Test for adding comment + # + def test_put_comment(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutComment.docx' + node_link = asposewordscloud.NodeLink(None, '0.0.3') + doc_pos = asposewordscloud.DocumentPosition(node_link, 0) + body = asposewordscloud.Comment(None, 'Yaroslav Ekimov', initial='YE', range_start=doc_pos, range_end=doc_pos, + text='A new comment') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutCommentRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_comment(request) + self.assertTrue(result.code == 200, 'Error has occurred while put comment') diff --git a/test/DocumentElements/test_document_properties.py b/test/DocumentElements/test_document_properties.py new file mode 100644 index 00000000..336b8904 --- /dev/null +++ b/test/DocumentElements/test_document_properties.py @@ -0,0 +1,106 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestDocumentProperties(BaseTestContext): + test_folder = 'DocumentElements/DocumentProperties' + + # + # Test for adding/updating document property + # + def test_create_or_update_document_property(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutUpdateDocumentProperty.docx' + property_name = 'AsposeAuthor' + _prop = asposewordscloud.DocumentProperty(False, property_name, value='Yaroslav Ekimov') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.CreateOrUpdateDocumentPropertyRequest(remote_name, property_name, + _prop, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.create_or_update_document_property(request) + self.assertTrue(result.code == 200, 'Error has occurred while create or update document property') + + # + # Test for deleting document property + # + def test_delete_document_property(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestDeleteDocumentProperty.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + property_name = 'testProp' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteDocumentPropertyRequest(remote_name, property_name, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.delete_document_property(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete property') + + # + # Test for getting document properties + # + def test_get_document_properties(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentProperties.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentPropertiesRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_properties(request) + self.assertTrue(result.code == 200, 'Error has occurred while get properties') + + # + # Test for getting document property + # + def test_get_document_property(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentProperty.docx' + property_name = 'Author' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentPropertyRequest(remote_name, property_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_property(request) + self.assertTrue(result.code == 200, 'Error has occurred while get property') + diff --git a/test/DocumentElements/test_drawing_objects.py b/test/DocumentElements/test_drawing_objects.py new file mode 100644 index 00000000..cb5cabc1 --- /dev/null +++ b/test/DocumentElements/test_drawing_objects.py @@ -0,0 +1,175 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestDrawingObjects(BaseTestContext): + test_folder = 'DocumentElements/DrawingObjects' + + # + # Test for getting drawing object + # + def test_get_document_drawing_object_by_index(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentDrawingObjectByIndex.docx' + index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentDrawingObjectByIndexRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.get_document_drawing_object_by_index(request) + self.assertTrue(result.code == 200, 'Error has occurred while get drawing object by index') + + # + # Test for getting drawing object image data + # + def test_get_document_drawing_object_image_data(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentDrawingObjectImageData.docx' + index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentDrawingObjectImageDataRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.get_document_drawing_object_image_data(request) + self.assertTrue(len(result) > 0, 'Error has occurred while get drawing object image data') + + # + # Test for getting drawing object ole data + # + def test_get_document_drawing_object_ole_data(self): + filename = 'sample_EmbeddedOLE.docx' + remote_name = 'TestGetDocumentDrawingObjectOleData.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentDrawingObjectOleDataRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.get_document_drawing_object_ole_data(request) + self.assertTrue(len(result) > 0, 'Error has occurred while get drawing object ole data') + + # + # Test for getting drawing objects + # + def test_get_document_drawing_objects(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentDrawingObjects.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentDrawingObjectsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_drawing_objects(request) + self.assertTrue(result.code == 200, 'Error has occurred while get drawing objects') + + # + # Test for updating drawing object + # + def test_post_drawing_object(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostDrawingObject.docx' + data = os.path.join(self.local_common_folder, 'aspose-cloud.png') + index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostDrawingObjectRequest(remote_name, '{"Left": 0}', data, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_drawing_object(request) + self.assertTrue(result.code == 200, 'Error has occurred while update drawing object') + + # + # Test for adding drawing object + # + def test_put_drawing_object(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutDrawingObject.docx' + data = os.path.join(self.local_common_folder, 'aspose-cloud.png') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutDrawingObjectRequest(remote_name, '{"Left": 0}', data, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_drawing_object(request) + self.assertTrue(result.code == 200, 'Error has occurred while add drawing object') + + # + # Test for rendering drawing object + # + def test_render_drawing_object(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestRenderDrawingObject.docx' + _format = 'png' + index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.RenderDrawingObjectRequest(remote_name, _format, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.render_drawing_object(request) + self.assertTrue(len(result) > 0, 'Error has occurred while render drawing object') + + # + # Test for removing drawing object from document + # + def test_delete_drawing_object(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestDeleteDrawingObject.docx' + index = 0 + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteDrawingObjectRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_drawing_object(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete drawing object') diff --git a/test/DocumentElements/test_fields.py b/test/DocumentElements/test_fields.py new file mode 100644 index 00000000..4e1d4f94 --- /dev/null +++ b/test/DocumentElements/test_fields.py @@ -0,0 +1,177 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestFields(BaseTestContext): + test_folder = 'DocumentElements/Fields' + + # + # Test for getting fields from document + # + def test_get_fields(self): + filename = 'GetField.docx' + remote_name = 'TestGetFields.docx' + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetFieldsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.get_fields(request) + self.assertTrue(result.code == 200, 'Error has occurred while get fields') + + # + # Test for getting field from document + # + def test_get_field(self): + filename = 'GetField.docx' + remote_name = 'TestGetField.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetFieldRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0/paragraphs/0') + result = self.words_api.get_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while get field') + + # + # Test for updating document field + # + def test_post_field(self): + filename = 'GetField.docx' + remote_name = 'TestPostField.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + index = 0 + body = asposewordscloud.Field(None, '0.0.3', '{ NUMPAGES }') + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostFieldRequest(remote_name, body, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0/paragraphs/0', + dest_file_name=dest_name) + result = self.words_api.post_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while post field') + + # + # Test for inserting document field + # + def test_put_field(self): + filename = 'GetField.docx' + remote_name = 'TestPutField.docx' + body = asposewordscloud.Field(None, '0.0.3', '{ NUMPAGES }') + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutFieldRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0/paragraphs/0') + result = self.words_api.put_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while put field') + + # + # Test for reevaluating fields in document + # + def test_post_update_document_fields(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostUpdateDocumentFields.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostUpdateDocumentFieldsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_update_document_fields(request) + self.assertTrue(result.code == 200, 'Error has occurred while post update document fields') + + # + # Test for inserting page numbers + # + def test_post_insert_page_numbers(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostInsertPageNumbers.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + body = asposewordscloud.models.PageNumber('{PAGE} of { NUMPAGES }', 'center', False, True) + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostInsertPageNumbersRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_insert_page_numbers(request) + self.assertTrue(result.code == 200, 'Error has occurred while post insert page numbers') + + # + # Test for removing field + # + def test_delete_field(self): + filename = 'GetField.docx' + remote_name = 'TestDeleteField.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteFieldRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0/paragraphs/0') + result = self.words_api.delete_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete field') + + # + # Test for removing field + # + def test_delete_fields(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestDeleteFields.docx' + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteFieldsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_fields(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete fields') diff --git a/test/DocumentElements/test_footnote.py b/test/DocumentElements/test_footnote.py new file mode 100644 index 00000000..ab63d6e8 --- /dev/null +++ b/test/DocumentElements/test_footnote.py @@ -0,0 +1,119 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestFootnote(BaseTestContext): + test_folder = 'DocumentElements/Footnotes' + + # + # Test for getting footnote from document + # + def test_get_footnote(self): + filename = 'Footnote.doc' + remote_name = 'TestGetFootnote.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetFootnoteRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_footnote(request) + self.assertTrue(result.code == 200, 'Error has occurred while get footnote') + + # + # Test for getting footnotes from document + # + def test_get_footnotes(self): + filename = 'Footnote.doc' + remote_name = 'TestGetFootnotes.docx' + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetFootnotesRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_footnotes(request) + self.assertTrue(result.code == 200, 'Error has occurred while get footnotes') + + # + # Test for delete footnote from document + # + def test_delete_footnote(self): + filename = 'Footnote.doc' + remote_name = 'TestDeleteFootnote.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteFootnoteRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_footnote(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete footnote') + + # + # Test for update footnote from document + # + def test_post_footnote(self): + filename = 'Footnote.doc' + remote_name = 'TestPostFootnote.docx' + index = 0 + footnote = asposewordscloud.Footnote(text='new text is here') + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostFootnoteRequest(remote_name, footnote, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_footnote(request) + self.assertTrue(result.code == 200, 'Error has occurred while update footnote') + + # + # Test for insert footnote from document + # + def test_put_footnote(self): + filename = 'Footnote.doc' + remote_name = 'TestPutFootnote.docx' + footnote = asposewordscloud.Footnote(text='new text is here', footnote_type='Endnote') + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutFootnoteRequest(remote_name, footnote, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_footnote(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert footnote') diff --git a/test/DocumentElements/test_form_field.py b/test/DocumentElements/test_form_field.py new file mode 100644 index 00000000..f26e7c6a --- /dev/null +++ b/test/DocumentElements/test_form_field.py @@ -0,0 +1,129 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestFormField(BaseTestContext): + test_folder = 'DocumentElements/FormFields' + + # + # Test for updating footnote from document + # + def test_post_form_field(self): + filename = 'FormFilled.docx' + remote_name = 'TestPostFormField.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + index = 0 + body = asposewordscloud.FormFieldTextInput(name='FullName', enabled=True, calculate_on_exit=True, status_text='', + text_input_type='Regular', text_input_default='') + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostFormFieldRequest(remote_name, body, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name, node_path='sections/0') + result = self.words_api.post_form_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while update from field') + + # + # Test for inserting footnote from document + # + def test_put_form_field(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutFormField.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + body = asposewordscloud.FormFieldTextInput(name='FullName', enabled=True, calculate_on_exit=True, status_text='', + text_input_type='Regular', text_input_default='123', + text_input_format='UPPERCASE') + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutFormFieldRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name, node_path='sections/0') + result = self.words_api.put_form_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert from field') + + # + # Test for removing form field + # + def test_delete_form_field(self): + filename = 'FormFilled.docx' + remote_name = 'TestDeleteFormField.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteFormFieldRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.delete_form_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete from field') + + # + # Test for getting form field + # + def test_get_form_field(self): + filename = 'FormFilled.docx' + remote_name = 'TestGetFormField.docx' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetFormFieldRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.get_form_field(request) + self.assertTrue(result.code == 200, 'Error has occurred while get from field') + + # + # Test for getting form field + # + def test_get_form_fields(self): + filename = 'FormFilled.docx' + remote_name = 'TestGetFormFields.docx' + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetFormFieldsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path='sections/0') + result = self.words_api.get_form_fields(request) + self.assertTrue(result.code == 200, 'Error has occurred while get from fields') diff --git a/test/DocumentElements/test_header_footer.py b/test/DocumentElements/test_header_footer.py new file mode 100644 index 00000000..983bf877 --- /dev/null +++ b/test/DocumentElements/test_header_footer.py @@ -0,0 +1,140 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestHeaderFooter(BaseTestContext): + test_folder = 'DocumentElements/HeaderFooters' + + # + # Test for inserting header or footer + # + def test_put_header_footer(self): + filename = 'HeadersFooters.doc' + remote_name = 'TestPutHeaderFooter.doc' + footer_type = "FooterEven" + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutHeaderFooterRequest(remote_name, footer_type, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_header_footer(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert header footer') + + # + # Test for getting header or footer + # + def test_get_header_footer(self): + filename = 'HeadersFooters.doc' + remote_name = 'TestGetHeaderFooter.doc' + index = 0 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetHeaderFooterRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_header_footer(request) + self.assertTrue(result.code == 200, 'Error has occurred while get header footer') + + # + # Test for getting headers or footers + # + def test_get_header_footers(self): + filename = 'HeadersFooters.doc' + remote_name = 'TestGetHeaderFooters.doc' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetHeaderFootersRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_header_footers(request) + self.assertTrue(result.code == 200, 'Error has occurred while get headers footers') + + # + # Test for getting section headers/footers + # + def test_get_header_footer_of_section(self): + filename = 'HeadersFooters.doc' + remote_name = 'TestGetHeaderFooterOfSection.doc' + index = 0 + section_index = 0 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetHeaderFooterOfSectionRequest(remote_name, index, section_index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_header_footer_of_section(request) + self.assertTrue(result.code == 200, 'Error has occurred while get header footer of section') + + # + # Test for removing header/footer + # + def test_delete_header_footer(self): + filename = 'HeadersFooters.doc' + remote_name = 'TestDeleteHeaderFooter.doc' + index = 0 + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteHeaderFooterRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_header_footer(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete header footer') + + # + # Test for removing headers/footers + # + def test_delete_headers_footers(self): + filename = 'HeadersFooters.doc' + remote_name = 'TestDeleteHeadersFooters.doc' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteHeadersFootersRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_headers_footers(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete headers footers') diff --git a/test/DocumentElements/test_hyperlinks.py b/test/DocumentElements/test_hyperlinks.py new file mode 100644 index 00000000..842f55e1 --- /dev/null +++ b/test/DocumentElements/test_hyperlinks.py @@ -0,0 +1,69 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestHyperlinks(BaseTestContext): + test_folder = 'DocumentElements/Hyperlinks' + + # + # Test for getting document hyperlink by index + # + def test_get_document_hyperlink_by_index(self): + filename = 'test_doc.docx' + remote_name = 'TestGetDocumentHyperlinkByIndex.docx' + index = 0 + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentHyperlinkByIndexRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_hyperlink_by_index(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document hyperlink by index') + + # + # Test for getting document hyperlinks + # + def test_get_document_hyperlinks(self): + filename = 'test_doc.docx' + remote_name = 'TestGetDocumentHyperlinks.docx' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentHyperlinksRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_hyperlinks(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document hyperlinks') diff --git a/test/DocumentElements/test_macros.py b/test/DocumentElements/test_macros.py new file mode 100644 index 00000000..06ff348b --- /dev/null +++ b/test/DocumentElements/test_macros.py @@ -0,0 +1,51 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestMacros(BaseTestContext): + test_folder = 'DocumentElements/Macros' + + # + # Test for removing document macros + # + def test_delete_document_macros(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestDeleteDocumentMacros.docx' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteDocumentMacrosRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_document_macros(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete document macros') diff --git a/test/DocumentElements/test_math_objects.py b/test/DocumentElements/test_math_objects.py new file mode 100644 index 00000000..71bb83bd --- /dev/null +++ b/test/DocumentElements/test_math_objects.py @@ -0,0 +1,106 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestMathObjects(BaseTestContext): + test_folder = 'DocumentElements/MathObjects' + + # + # Test for removing math object from document + # + def test_delete_office_math_object(self): + filename = 'MathObjects.docx' + remote_name = 'TestDeleteOfficeMathObject.docx' + index = 0 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteOfficeMathObjectRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_office_math_object(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete math object') + + # + # Test for getting math object from document + # + def test_get_office_math_object(self): + filename = 'MathObjects.docx' + remote_name = 'TestGetOfficeMathObject.docx' + index = 0 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetOfficeMathObjectRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_office_math_object(request) + self.assertTrue(result.code == 200, 'Error has occurred while get math object') + + # + # Test for getting math objects from document + # + def test_get_office_math_objects(self): + filename = 'MathObjects.docx' + remote_name = 'TestGetOfficeMathObjects.docx' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetOfficeMathObjectsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_office_math_objects(request) + self.assertTrue(result.code == 200, 'Error has occurred while get math objects') + + # + # Test for getting math object from document + # + def test_render_math_object(self): + filename = 'MathObjects.docx' + remote_name = 'TestRenderMathObject.docx' + index = 0 + format = 'png' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.RenderMathObjectRequest(remote_name, format, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.render_math_object(request) + self.assertTrue(len(result) > 0, 'Error has occurred while render math objects') diff --git a/test/DocumentElements/test_pages.py b/test/DocumentElements/test_pages.py new file mode 100644 index 00000000..1638604d --- /dev/null +++ b/test/DocumentElements/test_pages.py @@ -0,0 +1,90 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestPages(BaseTestContext): + test_folder = 'DocumentElements/Pages' + + # + # Test for page rendering + # + def test_render_page(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestRenderPage.docx' + page_number = 1 + format = 'png' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.RenderPageRequest(remote_name, page_number, format, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.render_page(request) + self.assertTrue(len(result) > 0, 'Error has occurred while render page') + + # + # Test for getting page setup + # + def test_get_section_page_setup(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetSectionPageSetup.docx' + index = 0 + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetSectionPageSetupRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_section_page_setup(request) + self.assertTrue(result.code == 200, 'Error has occurred while get section page setup') + + # + # Test for updating page setup + # + def test_update_section_page_setup(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestUpdateSectionPageSetup.docx' + index = 0 + body = asposewordscloud.PageSetup(rtl_gutter=True, left_margin=10, orientation='Landscape', paper_size='A5') + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.UpdateSectionPageSetupRequest(remote_name, index, body, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.update_section_page_setup(request) + self.assertTrue(result.code == 200, 'Error has occurred while update section page setup') diff --git a/test/DocumentElements/test_paragraphs.py b/test/DocumentElements/test_paragraphs.py new file mode 100644 index 00000000..244d059a --- /dev/null +++ b/test/DocumentElements/test_paragraphs.py @@ -0,0 +1,207 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestParagraphs(BaseTestContext): + test_folder = 'DocumentElements/Paragraphs' + + # + # Test for removing paragraph + # + def test_delete_paragraph(self): + filename = 'test_doc.docx' + remote_name = 'TestDeleteParagraph.docx' + index = 0 + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteParagraphRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_paragraph(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete paragraph') + + # + # Test for getting paragraph + # + def test_get_document_paragraph(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentParagraph.docx' + index = 0 + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentParagraphRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_paragraph(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document paragraph') + + # + # Test for getting paragraph run + # + def test_get_document_paragraph_run(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentParagraphRun.docx' + index = 0 + paragraph_path = 'paragraphs/0' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentParagraphRunRequest(remote_name, paragraph_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_paragraph_run(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document paragraph run') + + # + # Test for getting paragraph font + # + def test_get_document_paragraph_run_font(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentParagraphRunFont.docx' + index = 0 + paragraph_path = 'paragraphs/0' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentParagraphRunFontRequest(remote_name, paragraph_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_paragraph_run_font(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document paragraph run font') + + # + # Test for getting paragraph run + # + def test_get_document_paragraph_runs(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentParagraphRuns.docx' + paragraph_path = 'sections/0/paragraphs/0' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentParagraphRunsRequest(remote_name, paragraph_path, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_paragraph_runs(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document paragraph runs') + + # + # Test for getting paragraphs + # + def test_get_document_paragraphs(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentParagraphs.docx' + node_path = 'sections/0' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentParagraphsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path=node_path) + result = self.words_api.get_document_paragraphs(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document paragraph') + + # + # Test for updating paragraph font + # + def test_post_document_paragraph_run_font(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostDocumentParagraphRunFont.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + index = 0 + paragraph_path = 'paragraphs/0' + body = asposewordscloud.Font(bold=True) + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostDocumentParagraphRunFontRequest(remote_name, body, paragraph_path, + index, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_document_paragraph_run_font(request) + self.assertTrue(result.code == 200, 'Error has occurred while update document paragraph font') + + # + # Test for inserting paragraph + # + def test_put_paragraph(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPutParagraph.docx' + node_path = 'sections/0' + body = asposewordscloud.ParagraphInsert('This is a new paragraph for your document') + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutParagraphRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder), + node_path=node_path) + result = self.words_api.put_paragraph(request) + self.assertTrue(result.code == 200, 'Error has occurred while put document paragraph') + + # + # Test for paragraph rendering + # + def test_render_paragraph(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestRenderParagraph.docx' + index = 0 + format = 'png' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.RenderParagraphRequest(remote_name, format, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.render_paragraph(request) + self.assertTrue(len(result) > 0, 'Error has occurred while render paragraph') diff --git a/test/DocumentElements/test_runs.py b/test/DocumentElements/test_runs.py new file mode 100644 index 00000000..7bfdd949 --- /dev/null +++ b/test/DocumentElements/test_runs.py @@ -0,0 +1,92 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestRuns(BaseTestContext): + test_folder = 'DocumentElements/Runs' + + # + # Test for removing run + # + def test_delete_run(self): + filename = 'Run.doc' + remote_name = 'TestDeleteRun.docx' + index = 0 + paragraph_path = 'paragraphs/1' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteRunRequest(remote_name, paragraph_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_run(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete run') + + # + # Test for updating run + # + def test_post_run(self): + filename = 'Run.doc' + remote_name = 'TestPostRun.docx' + index = 0 + paragraph_path = 'paragraphs/1' + body = asposewordscloud.Run(text='Run with text') + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostRunRequest(remote_name, body, paragraph_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.post_run(request) + self.assertTrue(result.code == 200, 'Error has occurred while update run') + + # + # Test for updating run + # + def test_put_run(self): + filename = 'Run.doc' + remote_name = 'TestPutRun.docx' + paragraph_path = 'paragraphs/1' + body = asposewordscloud.Run(text='Run with text') + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PutRunRequest(remote_name, paragraph_path, body, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.put_run(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert run') diff --git a/test/DocumentElements/test_sections.py b/test/DocumentElements/test_sections.py new file mode 100644 index 00000000..df2288da --- /dev/null +++ b/test/DocumentElements/test_sections.py @@ -0,0 +1,69 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestSections(BaseTestContext): + test_folder = 'DocumentElements/Sections' + + # + # Test for getting section + # + def test_get_section(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetSection.docx' + index = 0 + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetSectionRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_section(request) + self.assertTrue(result.code == 200, 'Error has occurred while get section') + + # + # Test for getting section + # + def test_get_sections(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetSections.docx' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetSectionsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_sections(request) + self.assertTrue(result.code == 200, 'Error has occurred while get sections') diff --git a/test/DocumentElements/test_tables.py b/test/DocumentElements/test_tables.py new file mode 100644 index 00000000..f617d381 --- /dev/null +++ b/test/DocumentElements/test_tables.py @@ -0,0 +1,449 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestTables(BaseTestContext): + test_folder = 'DocumentElements/Tables' + + # + # Test for removing table + # + def test_delete_table(self): + filename = 'TablesGet.docx' + remote_name = 'TestDeleteTable.docx' + index = 1 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteTableRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_table(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete table') + + # + # Test for removing table cell + # + def test_delete_table_cell(self): + filename = 'TablesGet.docx' + remote_name = 'TestDeleteTableCell.docx' + index = 0 + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteTableCellRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_table_cell(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete table cell') + + # + # Test for removing table row + # + def test_delete_table_row(self): + filename = 'TablesGet.docx' + remote_name = 'TestDeleteTableRow.docx' + index = 0 + source_path = 'tables/1' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteTableRowRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_table_row(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete table row') + + # + # Test for getting table border + # + def test_get_border(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetBorder.docx' + index = 0 + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetBorderRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_border(request) + self.assertTrue(result.code == 200, 'Error has occurred while get border') + + # + # Test for getting table borders + # + def test_get_borders(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetBorders.docx' + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetBordersRequest(remote_name, source_path, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_borders(request) + self.assertTrue(result.code == 200, 'Error has occurred while get borders') + + # + # Test for getting table + # + def test_get_table(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTable.docx' + index = 1 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTableRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_table(request) + self.assertTrue(result.code == 200, 'Error has occurred while get table') + + # + # Test for getting table cell + # + def test_get_table_cell(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTableCell.docx' + index = 0 + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTableCellRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_table_cell(request) + self.assertTrue(result.code == 200, 'Error has occurred while get table cell') + + # + # Test for getting table cell format + # + def test_get_table_cell_format(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTableCellFormat.docx' + index = 0 + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTableCellFormatRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_table_cell_format(request) + self.assertTrue(result.code == 200, 'Error has occurred while get table cell format') + + # + # Test for getting table row + # + def test_get_table_row(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTableRow.docx' + index = 0 + source_path = 'tables/1' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTableRowRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_table_row(request) + self.assertTrue(result.code == 200, 'Error has occurred while get table row') + + # + # Test for getting table row format + # + def test_get_table_row_format(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTableRowFormat.docx' + index = 0 + source_path = 'sections/0/tables/2' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTableRowFormatRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_table_row_format(request) + self.assertTrue(result.code == 200, 'Error has occurred while get table row format') + + # + # Test for getting tables + # + def test_get_tables(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTables.docx' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTablesRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_tables(request) + self.assertTrue(result.code == 200, 'Error has occurred while get tables') + + # + # Test for inserting table + # + def test_insert_table(self): + filename = 'TablesGet.docx' + remote_name = 'TestInsertTable.docx' + body = asposewordscloud.TableInsert(columns_count=3, rows_count=5) + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.InsertTableRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder), table=body) + result = self.words_api.insert_table(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert table') + + # + # Test for inserting table cell + # + def test_insert_table_cell(self): + filename = 'TablesGet.docx' + remote_name = 'TestInsertTableCell.docx' + body = asposewordscloud.TableCellInsert() + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.InsertTableCellRequest(remote_name, source_path, + os.path.join( + self.remote_test_folder, + self.test_folder), cell=body) + result = self.words_api.insert_table_cell(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert table cell') + + # + # Test for inserting table row + # + def test_insert_table_row(self): + filename = 'TablesGet.docx' + remote_name = 'TestInsertTableRow.docx' + body = asposewordscloud.TableRowInsert(columns_count=5) + source_path = 'sections/0/tables/2' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.InsertTableRowRequest(remote_name, source_path, + os.path.join( + self.remote_test_folder, + self.test_folder), row=body) + result = self.words_api.insert_table_row(request) + self.assertTrue(result.code == 200, 'Error has occurred while insert table row') + + # + # Test for rendering table + # + def test_render_table(self): + filename = 'TablesGet.docx' + remote_name = 'TestRenderTable.docx' + index = 0 + format = 'png' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.RenderTableRequest(remote_name, format, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.render_table(request) + self.assertTrue(len(result) > 0, 'Error has occurred while render table') + + # + # Test for updating table cell format + # + def test_update_table_cell_format(self): + filename = 'TablesGet.docx' + remote_name = 'TestUpdateTableCellFormat.docx' + index = 0 + body = asposewordscloud.TableCellFormat(None, 5, True, 'First', wrap_text=True) + source_path = 'sections/0/tables/2/rows/0' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.UpdateTableCellFormatRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder), format=body) + result = self.words_api.update_table_cell_format(request) + self.assertTrue(result.code == 200, 'Error has occurred while update table cell format') + + # + # Test for getting table properties + # + def test_get_table_properties(self): + filename = 'TablesGet.docx' + remote_name = 'TestGetTableProperties.docx' + index = 1 + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetTablePropertiesRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_table_properties(request) + self.assertTrue(result.code == 200, 'Error has occurred while get table properties') + + # + # Test for updating table properties + # + def test_update_table_properties(self): + filename = 'TablesGet.docx' + remote_name = 'TestUpdateTableProperties.docx' + index = 1 + body = asposewordscloud.TableProperties(None, 'Right', False, True, 1, 2, 3, 4, right_padding=5, + style_options='ColumnBands', top_padding=6) + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.UpdateTablePropertiesRequest(remote_name, index, + os.path.join( + self.remote_test_folder, + self.test_folder), properties=body) + result = self.words_api.update_table_properties(request) + self.assertTrue(result.code == 200, 'Error has occurred while update table properties') + + # + # Test for updating table row format + # + def test_update_table_row_format(self): + filename = 'TablesGet.docx' + remote_name = 'TestUpdateTableRowFormat.docx' + index = 0 + body = asposewordscloud.TableRowFormat(None, True, True, 10, 'Auto') + source_path = 'sections/0/tables/2' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.UpdateTableRowFormatRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder), format=body) + result = self.words_api.update_table_row_format(request) + self.assertTrue(result.code == 200, 'Error has occurred while update table row format') + + # + # Test for removing border + # + def test_delete_border(self): + filename = 'TablesGet.docx' + remote_name = 'TestDeleteTableBorder.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + index = 0 + source_path = 'tables/1/rows/0/cells/0/' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteBorderRequest(remote_name, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder), dest_file_name=dest_name) + result = self.words_api.delete_border(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete table border') + + # + # Test for removing border + # + def test_delete_borders(self): + filename = 'TablesGet.docx' + remote_name = 'TestDeleteTableBorders.docx' + source_path = 'tables/1/rows/0/cells/0/' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteBordersRequest(remote_name, source_path, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_borders(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete table borders') + + # + # Test for updating borders + # + def test_update_border(self): + filename = 'TablesGet.docx' + remote_name = 'TestUpdateBorder.docx' + index = 0 + body = asposewordscloud.Border(None, 'Left', asposewordscloud.XmlColor(None, 2), 6, 'DashDotStroker', 2, True) + source_path = 'tables/1/rows/0/cells/0/' + + with open(os.path.join(self.local_test_folder, self.test_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.UpdateBorderRequest(remote_name, body, source_path, index, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.update_border(request) + self.assertTrue(result.code == 200, 'Error has occurred while update border') diff --git a/test/DocumentElements/test_text.py b/test/DocumentElements/test_text.py new file mode 100644 index 00000000..f6e7c5d1 --- /dev/null +++ b/test/DocumentElements/test_text.py @@ -0,0 +1,89 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestText(BaseTestContext): + test_folder = 'DocumentElements/Text' + + # + # Test for getting text + # + def test_get_document_text_items(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestGetDocumentTextItems.docx' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.GetDocumentTextItemsRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.get_document_text_items(request) + self.assertTrue(result.code == 200, 'Error has occurred while get document text items') + + # + # Test for replacing text + # + def test_post_replace_text(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostReplaceText.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + body = asposewordscloud.ReplaceTextRequest('aspose', 'aspose new') + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostReplaceTextRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_replace_text(request) + self.assertTrue(result.code == 200, 'Error has occurred while post replace text') + + # + # Test for searching text + # + def test_search(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestSearch.docx' + pattern = 'aspose' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.SearchRequest(remote_name, pattern, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.search(request) + self.assertTrue(result.code == 200, 'Error has occurred while search text') diff --git a/test/DocumentElements/test_watermarks.py b/test/DocumentElements/test_watermarks.py new file mode 100644 index 00000000..fb09aa3f --- /dev/null +++ b/test/DocumentElements/test_watermarks.py @@ -0,0 +1,93 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import asposewordscloud.models.requests +from test.base_test_context import BaseTestContext + + +class TestWatermarks(BaseTestContext): + test_folder = 'DocumentElements/Watermarks' + + # + # Test for removing watermark + # + def test_delete_document_watermark(self): + filename = 'test_doc.docx' + remote_name = 'TestDeleteDocumentWatermark.docx' + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.DeleteDocumentWatermarkRequest(remote_name, + os.path.join( + self.remote_test_folder, + self.test_folder)) + result = self.words_api.delete_document_watermark(request) + self.assertTrue(result.code == 200, 'Error has occurred while delete document watermark') + + # + # Test for inserting watermark image + # + def test_post_insert_document_watermark_image(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostInsertDocumentWatermarkImage.docx' + rotation_angle = 0 + dest_name = os.path.join(self.remote_test_out, remote_name) + image = os.path.join(self.local_common_folder, 'aspose-cloud.png') + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostInsertDocumentWatermarkImageRequest(remote_name, image, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name, + rotation_angle=rotation_angle) + result = self.words_api.post_insert_document_watermark_image(request) + self.assertTrue(result.code == 200, 'Error has occurred while post insert document watermark') + + # + # Test for inserting watermark text + # + def test_post_insert_document_watermark_text(self): + filename = 'test_multi_pages.docx' + remote_name = 'TestPostInsertDocumentWatermarkText.docx' + dest_name = os.path.join(self.remote_test_out, remote_name) + body = asposewordscloud.WatermarkText('This is the text', 90) + + with open(os.path.join(self.local_common_folder, filename), 'rb') as f: + file = f.read() + self.storage_api.put_create(os.path.join(self.remote_test_folder, self.test_folder, remote_name), file) + request = asposewordscloud.models.requests.PostInsertDocumentWatermarkTextRequest(remote_name, body, + os.path.join( + self.remote_test_folder, + self.test_folder), + dest_file_name=dest_name) + result = self.words_api.post_insert_document_watermark_text(request) + self.assertTrue(result.code == 200, 'Error has occurred while post insert document watermark text') diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 00000000..b3065a5d --- /dev/null +++ b/test/__init__.py @@ -0,0 +1,33 @@ +from test.Common.test_error_handling import TestErrorHandling +from test.Common.test_font_cache import TestFontCache +from test.Document.test_document import TestDocument +from test.DocumentActions.test_append_document import TestAppendDocument +from test.DocumentActions.test_classification import TestClassification +from test.DocumentActions.test_compare_document import TestCompareDocument +from test.DocumentActions.test_convert_document import TestConvertDocument +from test.DocumentActions.test_document_protection import TestDocumentProtection +from test.DocumentActions.test_document_statistics import TestDocumentStatistics +from test.DocumentActions.test_execute_mail_merge import TestExecuteMailMerge +from test.DocumentActions.test_execute_template import TestExecuteTemplate +from test.DocumentActions.test_load_web_document import TestLoadWebDocument +from test.DocumentActions.test_mail_merge_fields import TestMailMergeFields +from test.DocumentActions.test_revisions import TestRevisions +from test.DocumentActions.test_split_document import TestSplitDocument +from test.DocumentElements.test_bookmarks import TestBookmarks +from test.DocumentElements.test_comments import TestComments +from test.DocumentElements.test_document_properties import TestDocumentProperties +from test.DocumentElements.test_drawing_objects import TestDrawingObjects +from test.DocumentElements.test_fields import TestFields +from test.DocumentElements.test_footnote import TestFootnote +from test.DocumentElements.test_form_field import TestFormField +from test.DocumentElements.test_header_footer import TestHeaderFooter +from test.DocumentElements.test_hyperlinks import TestHyperlinks +from test.DocumentElements.test_macros import TestMacros +from test.DocumentElements.test_math_objects import TestMathObjects +from test.DocumentElements.test_pages import TestPages +from test.DocumentElements.test_paragraphs import TestParagraphs +from test.DocumentElements.test_runs import TestRuns +from test.DocumentElements.test_sections import TestSections +from test.DocumentElements.test_tables import TestTables +from test.DocumentElements.test_text import TestText +from test.DocumentElements.test_watermarks import TestWatermarks diff --git a/test/base_test_context.py b/test/base_test_context.py new file mode 100644 index 00000000..7bfac30f --- /dev/null +++ b/test/base_test_context.py @@ -0,0 +1,56 @@ +# +# -------------------------------------------------------------------------------------------------------------------- +# +# Copyright (c) 2018 Aspose.Words for Cloud +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# -------------------------------------------------------------------------------------------------------------------- +# + +import os +import json +import unittest +import warnings +import asposestoragecloud +import asposewordscloud +import six + + +class BaseTestContext(unittest.TestCase): + + def setUp(self): + root_path = os.path.abspath(os.path.realpath(os.path.dirname(__file__)) + "/..") + self.local_test_folder = os.path.join(root_path, 'TestData') + self.remote_test_folder = os.path.join('Temp', 'SdkTests', 'python') + self.remote_test_out = os.path.join('Temp', 'SdkTests', 'python', 'TestOut') + self.local_common_folder = os.path.join(self.local_test_folder, 'Common') + with open(os.path.join(root_path, 'Settings', 'servercreds.json')) as f: + creds = json.loads(f.read()) + api_client = asposewordscloud.ApiClient() + api_client.configuration.host = creds['BaseUrl'] + api_client.configuration.api_key['api_key'] = creds['AppKey'] + api_client.configuration.api_key['app_sid'] = creds['AppSid'] + self.storage_api = asposestoragecloud.StorageApi(asposestoragecloud.ApiClient(creds['AppKey'], creds['AppSid'])) + self.storage_api.api_client.configuration.base_url = creds['BaseUrl'] + '/v1.1' + self.words_api = asposewordscloud.WordsApi(api_client) + if six.PY3: + warnings.simplefilter("ignore", ResourceWarning) + diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..1cf0829d --- /dev/null +++ b/tox.ini @@ -0,0 +1,10 @@ +[tox] +envlist = py27, py3 + +[testenv] +deps=-r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt + +commands= + nosetests \ + [] \ No newline at end of file

8?^+=0t!#GWr zonTxE&Aww4&?)FZm4F3TXQ+pFv+rKpT55N5%&;b1%`8=HP8Tucf4bw!;0fGA8f_BrC%9*OkwWC9Gos`$UIkz^= z+a)Hshy`xyceGMmAUf^R>*9CMdxu8}4dG+z<<97&*F<-=e!fkfA@W3@s5+Mc9soe|om?5g6;vQ;#rQie9a?8ZBd>(#Bqi!h&MjD$=>JK@I-_LHY zRWcrKhkgEoFi6C}#GAB1VnnUm`*gdt%| z3i*?Fz8X~$68jP`dbLJobZbjft4(y;`Q*XIPBoqfkqdMl1?gYTQFwA(FN7iK%x2WK zs{)JQMDjFb_i{oLEc&B#3nGHGXschV{%FhJ}F+fg=VbUu%^zy+%^<}3>rk{VVU4wn< z)nsr73HO`UZWCNrQ7HV7Hs4qpaAvbu+jQ~7kuicRB_cPcy%WzsqU-}!kodDOTvvw9 z)28yes2gyQbu$9vTa(4*wr1s=J%_%bX4znFFv3D-2JKD5g=kWThdWu9jx2U5tu&B0 z^4|Ke`#gK)&W9=^nQWvHzr=X*`X%r87(XB`)G04&Tx==rIy(aIza-*cVR>NI-(~cx zpA0heb8k*h8KF4Z89G%N!kUgD>Ubl`C;Tf}7PDh7kJcpB3gZr!2XdN|>6N7**Pli+ zk`ra&F;_5>j_M~!KLTx?N-_ns8(N}yYJPrPpiYVJL7|c28f8&_6ACM=5O1fMAI702 zCG64A70O#k{pbRFk#tyZ@sNvAn|s*d=VYpLHbk*3%a^dd$+w<7n4g}=?{p6htx_&M zZ9ZooI);00c~&XR8;31vJNOL2JxypKlXGpFJ67H{MY1F2Zc*poBzHgl2qt5KRje`P zub;IyE~TF1S3UoR`ap#2nE4dxvK*gMnqwTUOw+|2wMfMWzE(*4;h3SlVN!stQ+89m z{nRmrPp^BvV_36&)v?Q3v;O!}J}4^us};>HNdK8|;~s&9L?@+eN!7{?Opu~eZ5N1! z8ED>>%41OreLEQlKEot6z(tr=2%CrTY*{LnX}nS-XncbB=2jRbBs{!ti}@}KY{ZCP zH>F=2+Ia*+(|yIgDE{t%Bb7=%Kp1zye{p7g{ytY>xJF?+i;y+P@hjF8HDADw7Q>J4 zCy!U0Q^7(l4aEpJ&eDjuK;%VrnN>gwQ8!p~(DYBW>YrchOn5gsNG!U`LKskvUv>p= z>sr252eA`)9U>u`pTiN}x?|G01le`sJgR(muGr%#EYIB=2<{>tQ3p*PiO+}Za3Fk2 z-Bi~VXOvQ`xUTxDYBIST>SzwSi)Bik6uo!sA%Lv*Bo16^NmyD42xyVVEUzHE1%M-5 zzk6>DEVoZY3N%OR7~A<%vfA*P$HI9Wbmivq_3(|@LxJ)M?ia?~v#sYT5t)5&^Pjur ztan=w&ns4E;fSqN%W~(Ts6eU12k}zgTq`&??1%53zJ3v4&rnRiK$X6bcmLHlRRQLk z5V3WFja;OdSP%XxulHB5^mJwAegXlGO}{{0{oLB_zkjUn?+Z;O`#nb3FB+xXS@39+ zO6`OdPI>RN;O5gOTZd%`a zA6w1SnpW7(v!406WoKKnksRjJ%)l^2j}UMWFR(366>u!c5kiT6)d@SX(iA18dWm8Z z^fCvnQBnLcGt#?Yy+n1~b%Wnp^Qmj$CwA2!HS1kx*#;BfIhzez+SAEu`fnS-!k}BC zF!X$H@)T{BKf_9pmac4g?jazC!IpVvJ0*E&Wi4@ue+=D+V?ipFW(`VP;3oK-Fa}ve zmGq;_PyrD+q1>A_1LO#lF-eK;z~sD6uaR`mYf(Kw*Em^BibvS$6%LdSdPRp&&Z8nt zkbt9D8Ac^Io{KMY531cDNXA>^X+g39QD7q@SvIQ*NE$2s4A>01o!JQ97#8eVx`^^b zM=}v~5jsj_eGuS9O^bGK3~L*tZoWSVlDa!Y_LL0Y%6D)HfiS$)(jusm15k9Z1ccO9 ze2s0YQfUv`e)=zzC0Sk7pV~NVX12Fq0e3u_DshDT#MTaQM|*>aRFp4P1(w?E_*)H^D7R_t8Gn zbAZ_bpG6#-)r*lL$KFLGMY}|8qJqq?xi{n3p9?%@<#J4zMMX>|?}YH;`nwvH)zCAG zlx)mUOEt>phh#Vdb|{sEIy9A52TstB#P$ zuci(YcS84ghXU|ycaiJV-58FVvJ1D@D>?CgcKmOS(zOyJ8)%yN@>)4+Z$M6$0MvPZ zE`0muwfzHr@&@k{UCJS^5x?N{bS9{7GcW zI#TLv>v~AjO?(!oDi)Ri3sCz955dV27@qnd(bz|?5ula63glwueoL(jwwX zpNMj0yUR6i$HRlI@y&$Gwl(zZB7O{=@=+#l{>P3;J`H!Z2b(()7#V-tAbt$Yk^pyh z7iDE50@AZ1hx~%am8GboVzUpJ|7)8<|8L`x2+(-#Un)ZY0Q_^I{U6K0*38t>h{4j< z$ij??-oefyLQ!4<4jTKPUT{*9qRM~oBmZ2GAb<0WQ2j~(0LWiaR#i;TBD}u$+tfbU zJ-8+|ZM?Gm`|0V)EoziTA!%@Mw7YLAwdh0AtvVw0=KA`2XJ;=cwo^{cad7Uty>rCY zBd@6L+r4ECjK;6F`>VLPL?NUtI5=cxcA;zRJ0mm8!_zx>?5Mf91(`iK^Y`xO=cl-K z*xTD%O8yF`Wl8Jc_tg4#QT_S!>7#DapY`>P$l3G6&HKEnuYmTYyrRC^qkEIQ@$reN z)V(JL5hr|+=%lRLu)eKdiYqXj z*XeX}LSphPyjl+q4>MZFig#|B*G@y~r}=f#yy|8Kr#8Jiw==s}es|4O*VN<;-W^;# z#x7qwWOntLNq~%HBt!w>V0e;$A7D*v6&0mLY#kUmn3(@QgGd6LI{^SZ zBPmfKRS*43y%+=RWn?{!1u>=kf~WyXdgM_RP&virnia%oDPQA-mw**gMQt5Rld>{) zqsgAHsf`XoN`olFH*W!kZr+YRS2=vn=0{Ugdcif{6e2GIeYcPJBRw&r-r`qSmUC#W z9986cEA8&y(~_INs-*}zEsCTtny)suSd^cOt>+-F{|bdvdAB@AFZiBjJoI^sXSf)h zZ(Z_{xEi#R``+Xv{I}hgrbg_4+Ffc@smH{;Y&}IOMYqST-ykf3AG8>(`PQY0iWKM9 zCNOq+Je+I?mVguXd|uoEfy3=kiW1XAp8jtB36WYZ_$Aw)i4@&gEG*_&!6zGpD&JWAEyCCp+=nFdp#aP5gLoETC3eBp*L_D zA|%`T_#*?WYirt&f^+s*kw&mn!&LePu|?=(f^Y5Fz7lp)6(M)H zt0LI=IG#_K&rb_$sldKAPO#wpgoG_57y=TKVSfo-3NTUu_!CC|J&&SgW)=_r(c#zE*M@W~m;f%kRMpvC zO<-hm{T8u1>6FDP4xJk!pHh-UW#4JC09jCAo~!JIhjk)mYVo0Pv!hkh>DfUscRO8O z+(%h>DOV3R2WDq)QVA%nrt}5{n^;^#E$-ywT&5n)UF;NKW+Y7?td)ol-d@Kn zc)Yj?SotRah|Qx_W0R}90d6(|GOC&{A_zrb@tHTe-Q|ppfL*^61~coJJ$)g;YwH zOuOwQ&`90kN9kn(kvO^eHlJ?`=1Yj`*A5UCT96Vq3{YzGRpEVl0+|}>Vt+8V!jdjS zB1d_aBAJx>z-s_e4Xr0vVrc;{CU!aynYe#vjxV&ZJS0TKeyh7fJuU1SL!A?lvQM3g z6nFB%mIY+YBa|Nw6q|m%_?E+oYJ!+>fhj82{m#P*v({{Lwe`XN#r$uDZ7^5dy!}qb znOW2#4*-;8+X2o&w?P55|uvcK)EX}It;2%3+7 zQZ$}2+sH`A4yc1qNp^x(!u)tTlpz2VDKD-9i`bF54R1VB`63|sr0U2}TH8x^DL!CK z#(^o=WakBwN%~=G((JgPP~)B(S?g9eTc0t@1OOM zxQ3~_t#@j{`vtb$6&22}x9;2D5c}`fJ>T>kIRfABY8w`RHe}+F?{)Tn3i#xF>(KT5 za1s`VzwB+>cjf#xeP685I5$tC?5*sD!1BCwJjfmF9e5u^k*-@5v`!)Gy z+`XIjf^OQ~{igE8cj#9)ihb)CE*p4Iw|TqwyiM@cwY~ZXCP_Kopa@&)V+rlwDc|Mu z{oC8Zf7g&)3voqq+Md5>L$+8s^E0zU#kXoIbvTYdz~|+o?d#rs<&fFPiXi4y_C5y= zQ{#$Z(a$oBKc1L7Ra6P_m+Vp9}oP$2Vg}0Z1Ol85*CJw z*fXa*(_lW94r*GZvYc19| zI`V`9dbV_ju_<$y`!^$Z0I1?#ULj>_O5F+#A&SMdz)yLi{sP@!K6*w4OmD21x<0Q? z5SkmHAw%V1cn;+XKV6%3GZUv8iaPNUkKvkd^* zD2&RODdXOMc;gYQ`Ems+XLUb3Kndu2ZxiNHe=As6U_9fCcIo%w#6+HkcjQVHk2mD- zY?pxu__tOJIY@R=gpQ4dbCYVyM9^Rf5T!SD|2WfSw%LSYME+6l@j*6y^rUio7H<Xw2&Uv`BbhsJ68n=7b?%--^O=Da25X1}uiX1j`3$>mGp%Ls0_(rC1 zWxN}DJR62z-scbTkT@GdVpw8B?S|m3*#X0p-Z4K4KC?TC zhEmWNbEI^8`!-4-lcK11obT+*861qDYYK9BZV^i2@YZ8!!k_svCnuKll=M$k)yDuaS}P@rp7=koBB(c_Q!M`(Br6Cx21 zO%p$aw)sL+pI(INnW_bXh=S?ZJOdzF0wJtRpUk;s++Nz#70(w^mL!}oLW2Lo_>hyR z@3c`RDbzZTs;Z3BS!#;FBv+M4ng&-o=gS2`%!oM=%$j11zW@`E?Z7xu6b@f>*xPi@p;JZPN!3$DRz2i^pnw6XWezV64;?YUh-l#UUS$r3nA(j&!J4Mz zN|1lz&C2C52w9D#$0h89ydss8COAsb0ukXzn(~AkPb2>2^omevZoLsu7AhgIJ1)-_ ziorsQ3@KZU2ziOq`22|F(o;B>Q^f)Pd+_LV`KYwhOBiLdFP4{N10Hg8<>(^pbZ0El z)`nuoh|7;VgIN6J%wSIQ(fh+MX`FfvD=uucS%&5#?QB1EkS^B#cb~f)G1J&cLVHS+ zBz)osTkfD$1Zyu0NP#t}#mrR9W7R5H@|9y^K(-va-l#cA>x3s^?nlLlZasY+;)qc6 z)jCW6A2P}zB}mgT&AAuh&%pJgo9~stFIuQXD&~` z7-NSJPD&dSbg3!MM8DwbycKcS?Z1d@<>&}Y$H)_%R)_X~$c-Ucv-tE|Ky#wKd@ltf zIEn2q6984l;rqBB^_#V3FAo{sbSH za8S59_^hL+o|{6Ijit^+^k{9`C{kxB6A54BVpJ6^9-ercG#L^C=4fGIk4}O)k!4C` zv?)}qybqZ`Br!t7>9pf#xQQB#82o_4dG@Sb$Z&9ZK?LID=eYTP_K`dfsalT&h__^V z*#!Yg&yEEL5`Av$5$Crxw#%KW&NofD?3d)WNklaV0}u8|Sm%pHT+N-#ISoM2-Zt|kg3mFjio+0(Umr@)7=XN*ue*~n zn{UrYT1oXLs@;*#r3DKV0*sbe?D{%JIw?P7eSE6Vv`NW%bzk2=S=N?&0kP%I& z#!hfn$*0DJ=>+YVov>nU|DFeW*)p8zPFmQ{zehmV@E^P)|8)MV>iRb5#`Q{P zt{@TtD=}6@a#P&m4hYCnosQ!4ObF@nyJLc|Rz-CA-GkX?;6;(|UHGex__N_q08;*gBmd;zcMW#Xe>TIfjd!>>8e{< zK8n8cZeD;YLF?q)P3c(g&n$v(My1RM!P)MbY;|%Bv=b3tFY!oL8HznBtSe|NEG+8; z#1t<^8a$VXzkRdS$4isl*VU57zLC5yOYqgVg0{HwIynbwrX-}!oN0Sq z(q@W*Du^j#xu^0}83>8Z4AiH}GETOHxNlsANan<6*2N>K61tgSzrK}biWZcD9uz!O zwcjOtGJIQcqiUmkTGZBjHSz(6iRPf=)3(N!AVw641%KJ*-1dxMC>W4Y6vLjQuU;?D z+GT#IFPOSiC#MlH%a0vvSA2m0pu|M1t^E_xR5rc@5*W60h~BkF&!om*jCTg`07SIc z)P?cFgyL+>YfnkE#LZEMnGs_aJ&^O4FS!6h{{pl3wk7wSKHw5C(Gfy2I-7NaJ~5ZZ zQ>I{xhnPq0R;e7tqhF}Ss%RlmMYJRx^t}$R4cMAcRoSbbekG3tBSB!G=of_qC2e2d zko5H6^IXDXln3nCSiTE<44JG-{Iu(aim6EcKitifNQB}T!6ThzmopuVu8M-d-eu#t z>gx#1F@h)pc!`Pw-(2f(#+w|vI^tB#pe|F)OuV_o-KtzV=+2QVU93qDTEbeF9Q#?( zq%5dJ#S17TwQDam29j6#>LP{h3Xw3U20J^G!vm4sfp(NBqU6;f12Y&(~hYbc*eBPl7ZM#t1WV;bLo zEK%>N)1T)*dp9A@bK|aPaff)9FxKh@-a$d9>y02Os}r@%LUPNs$Jx}EdYRQddvSGZ zUJSM^c}<)}6-FB_f-(jfwX|O-g;^rd+mQL1hXsfc{~2SoWx39x1vejkPL=a^#ZY&D z8fSPZB86!+Vp1(%(HydFdNW=)+d=fvC!kjAO?0#@vUV~g|JF_xHXZOA+UF*F;E9fB zzK_qM=>|4tja7^?dsbpVSMr#B)>S4WV?+L>Xdaaxy)&;^R!|+rrI9S3!J9^M8TY66 z?VSaQvz~0-+|c5flc*Sv4!ojEx(>RLoZ4dRLi(gtB zk!b!TtW@l*WeGBy?y(g_D)}#%yUe}&>JZ~?Q8K!@^fdQ`x)?hLy6MSgd|^i!3FD=s zA(4Ewl)EtGVuAfhP18vXr6G?e6JZNDspaf*7 zCE)(WgdLXyhhUU340QjaAT)W+@`FyWVw7XS`7YE)`k3Khr$%q6L)RBcW48 zyZUZ$eARUNX)$`$E@f@JcR>n!<3{q#4^9GO5EsP`f=B(}eJ36$3p@Eyk20AAj7bA%mTsu^HGQl&Q;zuu7sB zlWAd(w3g_sdX}x=Y+jdV+rSi| zQ)^Y6$(3BRsolVEA&*Z~kwx#Bz!bve9A(jR&Eh*ziOSFzp%^* z;oD73QR|#{Xx7zukx@k=Mm%b;>8SU!7W|GMkmguI%QZ1#GI)feJz*~HzP|MhoK1u< z9!kX3Y9?_U>eXg&1M$UmR37XnDoDmaiC^N3v(bj-vO-hL;M`)21T$u^5xzIsF*=UZ`j9YZ@@~yMUZsfuqh47l=t4bud+evJhrRNdD zTM`qT`G}9l<06Fi@8z=%=9q{KJ@grY^bb89(zTU#j>qA99(fnn}6rXz2 zUSL(<8(?}d!Iz&Tle7E=S0y4cF83_ZW7+5$@Q!*$Ly>`wrpIWQ!(#?&Vh z77!9uTDeCXNU1J(yOw1Zvj;*QG!7UF4XZ_}At*6ZgL4TlSj)GC&h;>EFs3E6&7l=+{uhp>!v-AjDgNirO;%tTvaNk(7a6za;O*9zeeb; z8n(4bIFB7sbaFtdBocnq&7rY@sd!EMFQmP)+k|SutC+>)k$G+h9cJ@Z^C$+Hh=Z;d zm?BTx7;4w(2KCgpi%+bMJ2|W6(G(-OO-)3jX0bdnFcHSX?jRB8q>m}$dJ zHa%4G8!*!$tvZ{V{`o}UGdwvZP;y$_wZD++La$}FfkYT_i*%nYvwExCVnF4i<2Qdb|X z2;C9K{-$FMOoFtp^d72}tZ~2-gAqRDUe}cQJZQJ{g^58V+l{$(rItb6(%#n@hLVWU z{tmrQ$dWR=)x=~}Or^{UFd-4|K2qN7?yeJG5e=j}?`W$Iv8|5X*)B-Pm~I@y>9MR{ zq(s~%f44nY#VC)YLpFn<&dji$H9As5Ia8#$&+0uBjdT=z@_>6TN?SqK~qV z`({eMKW?L}&U7q*6$hdkDIOr1gat%2Srl}gNoh$P-)*Le&a)um#pYAH$t(>ii6RGs zU~3Z0iYqh=k45$n9<?RFeX^E8)A9MbKD9eMCSP7UA51e3A-30eE%L&(yPAD|)9aojW#^gmR5Y$n)i<-nD%Er2oOnXkgCzO4ly`xN1)5 zR#V-J-5O=+`Js3DI^e+Z-oLjVA32sh%kP$+D{-O~^E3kZ9pnydTtlc6N z{$6!_bH^}l_w(v?f2le)6od;nzG`WBI$e*cn8VhAB5+f{XJa&HOpi~XCLPIYKIhZ} z+3jod!-wf-a8LFw(>N*LSR-}fT0rA&n<`${gXw_=9s{@jj6xFly5}$q_nf4?#G}L~ z_8cU>u8$D$DW2yd4C#Z_o*~4E@8bIUI#bZ_wT4e{&y-qKv?2{VW%_CF{rW?|Hn$fR z>01lacR&6kfghqzkGO5BTEj9h;sclRGCE&0Jj0WMisY_$35cfo4H}L_6Q4qlo4AL_ z=4(S=UtfA3)?2<&zDA*6Ed%=l2rPWPJ#@bP@6z(eH7p~&#vi}W^WEAv@@iBp5Ar0Q z4!g_2hEITCpXhKF9WjA~CtZFNcl7o)Jf7r|MB@uuFZ50^zHF`baO%PtOq)zt*ICS- zPA{4uEEj61fUmpSEqs_cu~`TA9c{ZPy;Ly{ZeuGwpdq_{NL=Yqydb^IS~1d)w5g}( zjt$Uj=ORiLtwcdyB*BRr7e<^O3kaB*5YA9e!s`gUB0RTmufAhY({4ldMWB6Cj^v}7_3oQlvb#~MqgcWx}7kd*5 zH*5&k$d$TGIysyHyD)sqh}0Fu0>L>cU!1jlf1v($qcF4;+b|=Y0Q8mOch*&I8@!pC zS_$REK~4Qc_Laygep2Mu{r7Ktg0hO`t6^9?WFjhsHT_SgNfFXpPr;MYQ-+u+77s)VhknCI<|$YnKA<3K}S;$_G6sATEoU#Ue1{hInmR8od^6JpV5oskYy zh%b;QLpGLe>N`r@p;58A6UcDB^c~U4AA${Nwt}*c{ zt7gD>#!FBB3cYcm2ilNv_Esc(@P&F1&Y1*~Tjn(#ktL-*I4z)HOkq)Yi zRnIt8G&*3uAcj`>%jb{nU0y=dfZFSz67^K(N%5amTceh#f=`Y)ZY@idY`Q)XUt?Jl zRr0^*ZOrO53&2eYaGYP7)~rmNSNm|{2RV*!Vy4VnI?i_BM)ow0Z$4?N7DJ;r^1^2i z4B@Nr)~+oUU`Em!E~Q_vdzY=Sd_n_%P!`BEVBU+;MK)n>?-w8d;7m1VLCY+qhgQNU zul77hDVJbxxciE+cn-$fh$dmA3}#fDx)4-gv6u><&t9Kvas*z*{#YFuD-T_o z_-GDxM4=4#bV)(GvLMJv+}eraGCgC;qryuGqs}>h_{T$EUMZigxc+(zl;KxDp%=rG zrIBMUBB97Ik7~Ar^-EVjh5d4~Y4C<{<*bSvw~|!OZ1gVrsu#?o<Z{?@_3bmNmppAj*VwQIZKm-I*G$Du=hRs%g0C_JZZ$RnXPIFN z^)5OSCe$^R1ux}jEKTAuan>FL1IBJ0zjH=XULX{#@}u@Vha7n<+J#bSj12c;!hy^- zCX8Hf)x=1J0MmvqUi0#<7ry3X_d{1Po~c9b2YfD9A)4Gy<%D{*si@H9vXT0-aCW-R zX1KX@c7K&3mJeqQHZ1y5FgU2tIdD0<^eY4Zx25D(OTS(J; z)*pF1$q-c?O>uVC2~~7p+S#nik8wH1b1^DIl25iGO|2lqm*pY=PkS}lKGUt*>S{5P zEzf&KiZZ{FC~UzFWXy`_g^5ECyxI&!9&$Cgtk?{LLtIIfZOO)77Mb4b)7Z`hr@3Wt zgHweH>$E8hho|m{;g$F~qZy3{$h-9r>Z$_Z+hs$^|)j zuI(&r<%=$Mh_BPBVR9DA!zH8nnS&<=(aIIIORomrZSV2OlL)QM#gPW!w3OyR_0*>t zsy|#U+B$Vdton9Ge*!R$*+TmYh@^MBAx;Hqzm;}b-pz#VOGUa7n$Y^fz~x~7fETwnOKJ2@BA z^Owy2Yls5@>*Dm@-_SiA#D6=0?ri4bVrggL{11s`Y3Mj-a-#Zer+*^g3)mY61F#h4 z;SE>JGaJ*nH~Gg2*JS}r!ULmUZ+ys#iC31t8x(rmwn@A1k2Y2G=V_C8eBC*Jvz-=ZlQK2#{c20h<~@nhUBdC?Om4#@7*`U}qf^js$y~HjZBMTH(Yq#8o^gJqT)uBLvoY3L zBUY$Uy$?!5MqN#`bEVq6X{ZvZc!F#kKKcuqx2(X zLTp*c?A%JS<;aXB{j}Vmj%DG#WP_$U#{kn4#`axe%*%1BQTR|%@uY2^RwH!w^jLc1 zR@}7tLrcptU+^v=NFjsE6fx*WxlVrUpOdtilC2Ga7Gq=%yv~4E|32(S=;~J)Ai5k@ z4@8h($L&6-xnl6I3gq;aJt>b&JhTG=&nex<@7bxBq~jY*Vd7hla@F2E_yoaLdC}}` z9|LF}NLI^txZx2tjfsnhO`CDsCXdUaxZz=OzAg5}U)_TQFd=(WkO!O2q=nauft_ zne|9@$R9>-!xhpwa_D>WM#JYs8RtXd=5U$}9o(jd`3e!G;owu8Cb_eU!l4JC`f@@3bt?CGUc zS9y3Xx_lEtpLEHw<##KX5(YB9YfUWk1vIngn?XESC)#=U*~0JtNC^hInS|$1A?n zN??CUO0-6>4KoLN8AtG9hivHgF;fiMg5E|i!WBTkiKQJxXztiN^uahB=V(1qOfTX+ zMma&e1}2UL;}|PZ56A{Ve-#RL%QO?J7whO{P96AhyreV4yRe4+v5y8vHG!64iHX=Q zW{n5V`e#}Jvn@DpGZt4I_+dhfNCt%U><5kwUSk21kwams^oc+pxb3b9fv5XJ)(2rx}TreQ*Y|}|Uhi7u6 z4c?PZGAff7-)z%l&y&$Lau>Wpq$1Lrn^QTXEg#lEm&>$<$NFknI=G`dyi&8A9 zNG`(6%N9`Fg;>r%0^ddp2nRk*nWR)2owdM^ho|5_0wxt;zBwmW=!BHv7jXwxP>>fzqsaVhK4^g1i{Y=6Sl;Eko$;Fsh-tZYLcVUyfL*krpo83MB(>FBbJy)*K)4w!^*0Gincs}l%I!g|Urg@KC0pOPX-w5r{9cjXMA zuu??#SM95oD}1&wwCnzdmMpC_MlJqmeNG)H_F%G+s}hE$heOCiV8uGTc7}s(+L3?5 z5rkXJlJE=tVGtds&wx)Ha z4&zK|py=}e_G_P1YoP(zT-*vvyJ?m=<6vT^oNdHUYsf@;rmw3ZlnVgy=50)X* zc(yY(x~zUnR>B#31F8LEa^}8gEYLQm4=Jg0N3*YMU`2~|p3DUFPi;?88d?=}_)=|= zxwmsN0;r+2kyYbJ0S{v?Xbdq&lk2ahIQRdS{a(K(iYxz~jvm(p0R9P+{nuihT|8~f z{>6P4y0*^i?8sk!ET0Itz6w6*J!oLZrQT~Nch;iRHc?C;)OkebvP06e;5n_mT|o&?h`i6;Nprh?N>8#QHW zPPE(>n%=;tVwCiu>AZHdj=Y+=C5_5>hV)d=7majP2y?cq6h<6jZd9x@50!S`hfasWQl5yD>^nW`nHQmpe@+x1lGTHj*qVM8K+~p z?MBuRC#55$OuCO(I_ANx1gP|Ra;_(CeN=|;fzFp`ySKmc8?ILG9PiOAcSacE-?TsD zOjx^iFe@&H9QLs`G35jt7$oL7HcVJQ2l>S3!~Q9Z{VgnS7=!YMj)05c1_9HGM3T2C zAvIWtC67kA?^}H79oaAAPcLTC_FdFRZPt6ZNnwbklDo^37M9B2N6~CRw>K6rJZFX1I@+wi{=wQI&iw=bo9hu>N5CI9o}tlMhEc+1N^Y_L z_lcdJM-&@*7DV3^Y($k7GSl~O%3;2fmR3o`OJ}8d+WTK?jltHlb9!N|7=(J?-$lJYm>#42(FH$+ z^TFc#_$SgcBO_emzxrl@$1_sZP(>O@Snd}x($V7eARSOSpk9CVc~3UaL}!AcT7$9e zlLHNE^E7F)Q_IErAJW<(*TO3GSCV9_*ap}C<^6bK`#@2$9ik1zbhI?`A1!W_F8(kHbjl@Yt3(bVbnDBs zkxYNHsyyt}0&d_`oI7$r8<9P5{C_GuQe5{FUi~9C2^Xp2`d3D4J_va3Ki*LwO5<6$ zEWqW7qF9NxKxz*h+2m#wT%M>3oZ1vPINr2?J=;EodiNZTo9mH%r*eANHF&pX$L ze>w`^tShoB`Is?*9{Gaqs=%3dR`N)x^H6VKbn0Nwu2*(jM7)4gk+li2CxWQ=%rdsT z&-m`-ALU@dg+n7#9h3KT_TyesW7Tol)7_H&Hoy3v`NQvOhB#TvK7SqNZ^+kV_22R9 zi$I*y;feFm)gddg?;kfKqkV@;Pu5RnX`$)=qXV|C zPO{~&s54%5f$KoP9K_JnetYfTlL&Q~+ChvqKV(xJT!+^o8%4Z{8B!LlWelKBiyhUan+OM(aKY9(w!o z0twYk*k>$t>929pz9u$2mEC}qL4;mYo)Il|qOunDI`A_2#ZYB3Rv8vYH6%ptKUQ#} zx;N$Nv1nU&@7YWP{q)AU;p1f*TzQmUsMM)-4*DGH>J1hG#m_^Q zdv#fVWYl}kW)1Pe^W!zc?X&XnO&s+DMmZAie4dH`^Ui1J&T(2c2*)RwF*{2SQCw)M zJ5F_TxWR*FUqb7kJZaxb+OG#;YxKw@;b(H!(OhINM*PW;=YBaWKD{Mf&M}+T?|C3$ zlI*bN>XsiEv;KH!6BLjKKH^BL5D^^xNK>vU^L&@nlWPW0b) zDV609qUGYC&0Dpy)U*R~yR{Ol1}Ddy;)Q!L1@!Bsyet9NoNvwdlAAC~X>1T()A88V zS-P>J>iTJy=LwV6aJydkUZ`qbm<@Rpv$Z5^&xq;hPX8`Ha37eJ82$9g!!tJN3R==? zBCnAQqSNTtA(RgOdo024!YpO+_?W$_q5~jG3wmUa;qUMDQFV_X>x?@WS*$tW`B<%} znEq~^aNS`l#d7WNKU|s(SLs9)8=tKScyEgP66{V_NK+rNiqaiCDIy3<&eFt$3x&^d zR$UL>I!_gu@xAZ)li?nFN3 z+S%dK*?w)5jO(?xd9W5mRGTrNJk}LTkb~Ie(cXe=I6qm$xG&r)I3!vlF|L0zHl>=1 z`D+J54(%D)JII@_`fLVL%(OA@q^M}4aQJi*FS3O&+N93Ibc}&+qcv3Y@{HAIvQPWD zDn3|e$>M|PkN0+Eg|K8IiB~R{h^1aC%8^RF>X|)9$F2Vz#f#U5zE4L-@aJf{%XKul z0*w^V^>l}L@!Gk2I(#qdpcya!!&RUo{+NUzHwu0-_>Nk0M<1$lMoDR%!-GXmTrYey zhsh0|#mf3cb|TU3KvN2%Ugl<|+(I)exilz~RW?_7=XSOKiX4lgwRZ4c57{m@MS8zYKh0uXR#{{Z*d@YEi(*4Cj_@(^oFWgPe zjwW^s*u$zqAysF*zs=P8l&!?qZ~=fNR{((gpG?io$JN%s6J4qNtJ`)D>4xsMwF0Yr z@vt`EREKbjmslKAPYhFbq=3iYly|=WYNz&QWctYA6ff{~>w6LqC|)zV`i7^0`OIi- ztXgmOarA1?YMlSK3j-R<%x31p#rviA$4fnzm8bkxRZ#}ZLsN&hRU6d>MJF5OY5fhB zKWZeSc0$hPw>q@EiA1e1*sSD%dI4S-2QvL6qWO9-WMFQFRW~j##^Sw~;chtAiQn|r zSVMuN?sXo15W&zz+>j%&Pewkkmyn$X%P*8f{i)p*LNhua1f}M(itZsZ+Ya}kdCH!> zKA?VwX6Xp4qwhJhH28U999%i*3RE}4&BUBeR9#yHnDv-f$)CJr&QX4P7z`JtcR9nY=n z8yoA90ID4uzQzn8jcM1TJsK-S>v?kq2Zs!c`Z?W%wi`fI6EWuM^g2d&ahJya0(WN# zyB>;LDdu$906Iff_E0h078fNXmG^)LG~Rl+_&LV(35CG%?&Au)%K?)1N2L>gCX1U@ z!jI|02tdX{<7$#~?Gjw1Zn5%n4i3=znc`1h4-aIQ_pIxbc^~_xW``Ve%eS#&a_tW- z&^BPfaur{`Kff=s;qcWv56Eb#E89t6edOj1Wp^>{`s}}h->CK`HlOR6AkzEGH-lwp zH-w_2D!fP#0DJTfnzNYcyNZ!?Qs}`8Ap}st5FFl<6yCc@tfi$|yVq^#;)q+A-xB5$ zE#UH=%sHf`CN&uCoq^hTpr~#GL9OI#cSXj@=%|b98DP&My}v|S1sr}1Y&exBL9Y3a zdK1*1Xy|fQ{*kRkER>J`wzF;4_trC*@q68v@eRJt6%Ob0I~c-?w8B0}irUQjLq*Y0 z)pw8zc}EfXvE+J~fx>VUjeyB@LG>{ISiu8Yevi$!emOXIZ(tVV3%gK3)0J~s|Hxcq z9hRsW5%Q*Tp0HHbB9d$`6h+&v7T~`f+@#I;kcK|BWY3oE_#vg}?GxAJN=SR3=#meGX!(lI z)S!B83e_I$Gyut|m^r{oRb+wmdF_WhAzaiq(Q6(b2+EzbDVM2snk89iaZ5f{LAJQz zB=P(2&e0S1AO~|TJG(nkCOu(TTeap!(HVp`SZG*-i& z){&fk-+*oe*pf$~{+v2xWzmqyj$cuNF0E`a&Lq7u%OD>cHJ{Q$BO!QeBKeY9pdNv1FORF}eOn)4Gj>)_qupoVBcGp3GU?mxKV+soqpM!O!@cd7$yy?o$- zV@>300e#~@o^^+4BHvH_ zVGnp!G1CdAG&|g`qm0GaX?M#%y76OE-wDaNoJX8pSA<{qiJd_&p zeY*a|oOiTP2B>3Y(o3|u;I;kG>TaclI_f?&>tNX(nPRKHZuP3tp5>(QwAwB1QN8)l%@gUnU!?d@m@aLB&v)dvITRlubGrh0jv?&O`IpCQ$#ePMerj#L z6F!mEI9600-ZQxh+d#}pzs69ai+*4MK%c5ZDN314K=5L%yUe_sU`Y51esSyn~p`(_)#D)hG%o5WE|b#2ev20j`rPfxTDHo zNs*(yZ#vx3FVm$T(X%j#{$!Dn;#lC=TAkM00MaKNogh*r;WoJ=5NcPmK*}pDuaK7n zckF6<_3AU0WW@6Uh(b;SXdiSTG1c_@aP^cYq!wk;k~U9RTN6;=Egi`atYCAqfIeVGA=UQYFOOk*p<(zZi*8y)R#elZZL-j z-h|h!D!~r~^=n;gV(fZ2bHyyvRPKLBhI7m;yh3&raXIkFWCT@)yVqgGwWIROzK?!+s z_HCleLNL?U9Wr@3-8!oeLrPXMxAi3{j?Z`)Q74K=T z341~&ZF=m9h#d&PiWuz6iFbJrd#zj{a}15Wkqpu6Ae&V?Q|flm{I{{M%a>g_uRTIK zBHGvJVpTV==an8O;Mw8D;(C+Y+=xUacS@UBC|$o1emi2_=Efi&Jf6lq^C6qmQ5UJ$ zB!;=wM&XMY;yQ>3!CB0C``xue)BL$wr5kOG)q5**2)^`AKdo?3j?wvT@{VyVW7*&K zI_!CB4x`b(%%dj|*}t3yvV z0X!P9V^n*~ZJ2@;jh`MWD`7=W-K52~A0HGDL_QrtTrmOe6FD~WZ!GDSRed~F`A|$3%jJJGnw>!8w z(%yTw=^4IIm{@Wyeu1SOZjuR6Ho2b>oufa#ErAX5T#!GpEddx=Rv=WJydTipQA4|J z>ut_xqecI8V{pOgK?^>rljOvY((+>e=jA4UI~1SQiU|h4LGw zSbxq~-+X#`T)F2>`IpyBBN;i`QiWL@nzDwyry)w+8ZrkKF7MCRre^nc=3G{NHG=7q zv%E8Xv*&ed6z}^b-kG`?rW#VR1n2Z0^SvJ{eMzMvDmnsP#x*qzBAKD%56K@fNeD$> zh`*EkYZ%<ZAQXpv$|t{4;?6^fj-F zf2|h%lmY-LAOPUMYDZV)S99~922Pqk{`;3q{i^=zGyJDM)bNM?mnZsF{jaz2pK1W0 e+4x_>|8Y~-)xbv2P&5z={Zc|t@<6li-~JB{3(|-H literal 0 HcmV?d00001 diff --git a/TestData/DocumentActions/MailMerge/SampleMailMergeTemplateData.txt b/TestData/DocumentActions/MailMerge/SampleMailMergeTemplateData.txt new file mode 100644 index 00000000..df6a7fb7 --- /dev/null +++ b/TestData/DocumentActions/MailMerge/SampleMailMergeTemplateData.txt @@ -0,0 +1,7 @@ + + Farooq Sheikh + Aspose Pty Ltd +