Aspose.Words Cloud SDK for C++ wraps Aspose.Words REST API so you could seamlessly integrate Microsoft Word® document generation, manipulation, conversion & inspection features into your own C++ applications.
Aspose.Words Cloud SDK for C++ allows to work with document headers, footers, page numbering, tables, sections, document comments, drawing objects, FormFields, fonts, hyperlinks, ranges, paragraphs, math objects, watermarks, track changes and document protection. It also assists in appending documents, splitting documents as well as converting document to other supported file formats.
Feel free to explore the Developer's Guide & API Reference to know all about Aspose.Words Cloud API.
- Convert between various document-related formats, including Word to PDF & vice versa.
- Mail merge and report generation in the Cloud.
- Split & merge Word documents.
- Access Word document metadata.
- Find and replace text.
- Add & remove watermarks and protection.
- Read & write access to Document Object Model.
- Thread safe
- Added GetAllRevisions method to obtain all available revisions in document.
- Added AppendAllEntriesToOneSection parameter to AppendDocument method to append entries to the same section.
- Added digital signature methds for DOC, DOCX, XPS, or ODT documents.
- Added ReplaceBackslashWithYenSign property for XpsSaveOptions and HtmlSaveOptions.
- Added DigitalSignature property for XpsSaveOptions.
- Added UseSdtTagAsFormFieldName property for PdfSaveOptions.
- Added MergeWholeDocument parameter to the MailMerge operations to update fields in whole document after executing of a mail merge with regions.
- Added the support of OpenType standard. It is usefull for languages required advanced typography.
- Added support for azw3 (Amazon Kindle Format) documents.
- Added 'MaxImageResolution' property for SvgSaveOptionsData class.
- Added the 'TranslateNodeId' method to transalate a node id to a node path.
- Added the support of multistorage operations. Saving a file as a result of an operation can be performed in a specific storage, when, used file path in the next format '@storage:path/to/file.doc'.
- Added the 'MergeWithNext' method to merge a section with the next one.
- Added the 'LockAspectRatio' propperty for DrawingObjectInsert and DrawingObjectUpdate methods.
- Added support for 'RemoveEmptyCells' option for the 'Cleanup' parameter in the insert 'MailMerge' API method.
- Added support for InsertAfterNode in the insert API without NodePath.
- Added support for inserting nodes (runs/rows/cells/bookmarks) without NodePath.
- Added support for transparency in the Watermark API.
- Added support for password and encryptedPassword fields in FileReference.
- Fixed missing href value in document responses.
- Properties Name, Text, StartRange, EndRange marked as required for InsertBookmark operation.
- Implemented DeleteOfficeMathObjects operation to delete all office math objects from document.
- Parameter ProtectionRequest was removed from the UnprotectDocument operation. Now removing protection from a document does not require a password.
- Model ProtectionRequest marked as deprecated, please use ProtectionRequestV2 instead for perform ProtectDocument operation. To change the password or protection type of protected document, the old password is no required.
- Added fields Password and EncryptedPassword to FileReference for documents encrypted by password.
- Removed parameter encryptedPassword2 from CompareDocument method. Please use FileReference password instead.
- Support of required properties in models.
- Property StyleName marked as required for InsertStyle operation.
- Property StyleName marked as required for CopyStyle operation.
- Property StyleName marked as required for ApplyStyleToDocumentElement operation.
- Properties SdtType and Level marked as required for InsertStructuredDocumentTag operation.
- Property Text marked as required for InsertParagraphoperation.
- Property Value marked as required for CreateOrUpdateDocumentProperty operation.
- Property NewValue marked as required for ReplaceText operation.
- Property Text marked as required for ReplaceWithText operation.
- Support for class inheritance in responses from the server.
- Fix XMLHttpRequest in web applications.
- Added InsertSection method.
- Added new type of RangeEndIdentifier for RangeApi: document:end
- Fix compatibility between CreateDocument API and Dropbox storage.
- Fix compatibility for property PageCount for FixedPageSaveOptionsData.
- Added operations to manipulate with Structure Document Tags (SDT) in documents.
- Various changes related to stability and performance
- Various changes related to stability and performance
- Added 'EmbedAttachments' property for PdfSaveOptionsData class.
- Added 'CacheHeaderFooterShapes' property for PdfSaveOptionsData class.
- FileReference structure has been added that allows to determine how the document will be accessed: from the remote storage, or loaded directly in the request.
- The 'AppendDocument' and 'AppendDocumentOnline' methods takes a 'FileReference' instead of an 'href' property.
- Added property 'StartingNumber' for 'PageNumbers' class.
- Added property 'GlobalCultureName' for 'FieldOptions' class.
- CompressDocument method now can handle images.
- Added support to convert password protected document using ConvertDocument API.
- Added optional loadEncoding and password parameters for ConvertDocument API method.
- Expand 'AppendDocument' API method to support 'ImageEntryList' for directly appending images to documents and another images.
- Added 'CompressDocument' API method to support compression and resizing images inside the document for reduce the size of the document.
- Added 'DeleteBookmark' and 'DeleteBookmarkOnline' API methods for delete bookmarks by name from the document.
- Added 'DeleteBookmarks' and 'DeleteBookmarksOnline' API methods for delete all bookmarks from the document.
- Added 'InsertBookmark' and 'InsertBookmarkOnline' API methods for create new bookmarks in the document.
- Support all save formats for 'CreateDocument' operation.
- Internal API fixes and improvments.
- Added ExportShapesAsSvg to HtmlSaveOption.
- Added new endpoint '~/styles/copy_from'.
- Online methods returns the dictionary of files with included original filename as key instead of single file content in responses.
- Parameters contained sensitive data should be passed in encrypted form. Names of the parameters have 'encrypted' prefix.
- Added Encrypt method to encrypt data on the API public key. Use it to prepare values for parameters required encrypted data.
- Changed type of enumerations for members of SaveOptionsData and other inherited classes from string to enum.
- Made 'SaveOprionsData.SaveFormat' property readonly with default value.
- Added subclasses for all formats of SaveOprionsData with specified SaveFormat.
- 'SaveOptionsData', 'FixedPageSaveOptionsData', 'ImageSaveOptionsData', 'OoxmlSaveOptionsData', 'TxtSaveOptionsBaseData' classes now is abstract.
- Added 'FieldOptions.FieldUpdateCultureName' to set Culture for fields
- Added 'DocumentEntry.Password' to set an encrypted password for appending document
- Added 'encryptedPassword2' query parameter to CompareDocuments to set an encrypted password for the second comparing document
- Added FieldOptions parameter to mail merge operations
- Added timeout parameter to api configuration
- Support encryption of 'CommonRequest.Password'. Automatic encryption of all passwords sent to the API server as request parameters.
- Removed 'GraphicsQualityOptions' image save option as it no longer supported.
- Added query parameter 'displayIntermediateResults' for batch requests. If 'false', the last response in batch will be returned only. Default is 'true'
- Added 'JsonDataLoadOptions' and 'XmlDataLoadOptions' to 'ReportEngineSettings'
- Added new api methods to get, insert, update or delete custom xml parts from documents.
- Added parameter 'ResultDocumentFormat' to Compare API
- Added 'ExportLanguageToSpanTag' pdf save option
- Added 'FlatOpcXmlMappingOnly' save option
- ImlRenderingMode option introduced witch is used to determine how ink (InkML) objects are rendered
- MaxCharactersPerLine option introduced which is used to specify the maximum number of characters per one line
- Added new API method to get a RSA public key to encrypt document passwords
- Added encryptedPassword common query option to pass an encrypted document password
- Implemented beta version of CompareDocumentOnline feature with both document sending in request
- CompareDocument method now can handle PDF files
- AcceptAllRevisionsBeforeComparison option introduced which is used to specify if accept all revisions before comparison
- Update dependencies in sdk
- Removed obsolete pdf save option 'EscapeUri'
- SaveOptions now contains CustomTimeZoneInfo to set custom timezone when SdtType.Date structured document tag updated from custom XML
- Url of child requests in batch can be full now (earlier it can be only relative)
- Added 'RquestId' header to all responses
- Remove boost and cpprest dependencies
- Add openssl dependency
- Support online methods
- Support batch requests
- Added DependsOn and ResultOf features support for batch requests
- Added 'UpdateCreatedTimeProperty' save option
- Added Tables into HeaderFooter so it's possible to address paragraphs inside table which is located in headerfooter (sections/0/headersfooters/1/tables/0/rows/0/cells/0/paragraphs/0)
- Added delete all comments method
- Added online version for all API methods
- In configuration json file appSid / appKey has been replaced to clientId / clientSecret.
- In Words API initialization methods clientId parameter precedes clientSecret parameter.
- Fixed the problem with methods passing boolean values as query parameters (they were ignored by the server).
- Internal API changes.
- Added Batch API feature
- Added new api method (PUT '/words/{name}/compatibility/optimize') which is allows to optimize the document contents as well as default Aspose.Words behavior to a particular versions of MS Word
- Added 'ApplyBaseDocumentHeadersAndFootersToAppendingDocuments' option to 'DocumentEntryList' for AppendDocument API
- WithoutNodePath methods have been removed, pass null values instead
- Added 'Markdown' save format
- Added endpoint to update paragraph format without node path (PUT '/words/{name}/paragraphs/{index}/format')
- Added new methods:
- DeleteAllParagraphTabStopsWithoutNodePath
- DeleteParagraphTabStopWithoutNodePath
- GetParagraphTabStopsWithoutNodePath
- InsertOrUpdateParagraphTabStopWithoutNodePath
- InsertParagraphWithoutNodePath
- UpdateParagraphFormatWithoutNodePath
- UpdateParagraphListFormatWithoutNodePath
- DeleteParagraphListFormatWithoutNodePath
- DrawingObject related methods have been changed body content. Special request classes are introduced instead of strings.
- InsertOrUpdateParagraphTabStop, DeleteParagraphTabStop methods have been changed parameter order
- OoxmlSaveOptionsData.CompressionLevel property has been added
- Added methods to work with Word document lists
- GetLists
- GetList
- InsertList
- UpdateList
- UpdateListLevel
- Added methods to work with styles
- GetStyles
- UpdateStyle
- InsertStyle
- CopyStyle
- GetStyleFromDocumentElement
- ApplyStyleToDocumentElement
- Added methods to work with paragraph list format
- GetParagraphListFormat
- GetParagraphListFormatWithoutNodePath
- UpdateParagraphListFormat
- DeleteParagraphListFormat
- Added methods to work with paragraph tab stops
- GetParagraphTabStops
- InsertOrUpdateParagraphTabStop
- DeleteAllParagraphTabStops
- DeleteParagraphTabStop
- Added methods to build reports
- BuildReport
- BuildReportOnline
- Added Shading property to ParagraphFormat
Microsoft Word: DOC, DOCX, RTF, DOT, DOTX, DOTM, FlatOPC (XML) OpenOffice: ODT, OTT WordprocessingML: XML Web: HTML, MHTML, HtmlFixed Text: TXT Fixed Layout: PDF
Fixed Layout: PDF/A, XPS, OpenXPS, PS Images: JPEG, PNG, BMP, SVG, TIFF, EMF Others: PCL
Firstly, create an account at Aspose for Cloud to get your application information and free quota to use the API.
Build Aspose.Words.Cloud SDK
- Install Microsoft Visual Studio 2019
- Intsall CMake 3.7 or newer and add "<CMAKE_INSTALATION_FOLDER>/bin" to PATH environment variable.
- Install VcPkg and add "<VCPKG_INSTALATION_FOLDER>" and "<VCPKG_INSTALATION_FOLDER>/installed/x64-windows" to PATH environment variable.
vcpkg install openssl:x64-windows
git clone https://github.com/aspose-words-cloud/aspose-words-cloud-cpp
cd aspose-words-cloud-cpp
mkdir .\build
cmake -G "Visual Studio 16 2019" -Thost=x64 -Ax64 -S . -B ./build
cmake --build ./build --config Release --target aspose_words_cloud_sdk
Create servercreds.json in '/settings' directory:
{
"ClientId" : "xxxx",
"ClientSecret" : "xxxxx"
}
Run tests
cmake --build .\build --config Debug --target aspose_words_cloud_test
cmake -E chdir ./build ctest -V -C Debug
Required packages:
- gcc >= 8.1
- cmake >= 3.7
- openssl >= 1.1.1
Build Aspose.Words.Cloud SDK
sudo apt-get install gcc cmake openssl-dev
git clone https://github.com/aspose-words-cloud/aspose-words-cloud-cpp
cd aspose-words-cloud-cpp
mkdir -p ./build
cmake -DCMAKE_BUILD_TYPE=Release -S . -B ./build
cmake --build ./build --config Release --target aspose_words_cloud_sdk
Create servercreds.json in '/settings' directory:
{
"ClientId" : "xxxx",
"ClientSecret" : "xxxxx"
}
Run tests
cmake --build ./build --config Release --target aspose_words_cloud_test
cmake -E chdir ./build ctest -V -C Debug
The complete source code is available at GitHub Repository.
Add "<SDK_ROOT>/include" directory to your project includes path. Link "<SDK_ROOT>/build/aspose_words_cloud_sdk/Release/aspose_words_cloud_sdk.lib" with your project. Link "<SDK_ROOT>/build/bin/Release/aspose_words_cloud_sdk.dll" for windows or "<SDK_ROOT>/build/bin/Release/aspose_words_cloud_sdk.so" for linux with your project.
Typical usage of the SDK in code follows this template:
// Start README example
using namespace aspose::words::cloud;
// Create client configuration
auto config = std::make_shared<ApiConfiguration>(yourClientId, yourClientSecret, /*optional*/baseUrl);
// Create API
auto api = std::make_shared<api::WordsApi>(config);
// Read file content
auto stream = std::shared_ptr<std::istream>(new std::ifstream(std::filesystem::path(localPath), std::ifstream::binary));
// upload file
auto uploadRequest = std::shared_ptr<requests::UploadFileRequest>(
new requests::UploadFileRequest(stream, remotePath)
);
auto uploadResult = api->uploadFile(uploadRequest);
// call one of API methods
auto request = std::shared_ptr<requests::GetSectionsRequest>(
new requests::GetSectionsRequest(remoteName, remoteDir)
);
auto response = api->getSections(request);
auto sections = response->getSections();
// End README example
Product Page | Documentation | API Reference | Code Samples | Blog | Free Support | Free Trial