Add a watermark to DOCX or remove previously added watermarks using C++

Using this C++ library, stamp DOCX documents with an image or text watermark or remove an already added watermark in a few steps

Add a text or image watermark to DOCX documents using C++. Load the DOCX document and insert the required watermark into it. Then save the result in a convenient format such as DOCX, PDF, MD, HTML, TXT, DOC, RTF, EPUB, XPS and more, and share the watermarked document with another person. Also remove the watermark from DOCX document if the watermark was previously added to the document, and the reasons for adding are not longer relevant.

View code snippet

DOCX – add watermark in C++

With this C++ API, developers can add a watermark to DOCX online. Just create the watermark using text or an image and then insert that watermark into your DOCX document in C++.

Note: there is no need to install any third party applications or libraries. Therefore, our C++ software solution is very easy to use.

Remove watermark from DOCX – C++

The given C++ SDK is also helpful to remove watermarks from DOCX. Removing a watermark in DOCX means that you can load the desired DOCX document stamped with a text or image watermark, remove this watermark from the DOCX using C++, and then save the output file in a convenient format – DOC, DOCX, PDF, JPEG, PNG, TIFF and others.

Work with watermark in DOCX

To evaluate how to add or remove a watermark in DOCX with our C++ API, load the DOCX and the watermark as an image or text. Then select a convenient export file format – DOC, DOCX, PDF, HTML, RTF, XPS and others.

Use the following example to see how it works:

File needs to add watermarks
Run code
Upload an image you want insert
Select the target format from the list
using namespace aspose::words::cloud;

auto config = std::make_shared<ApiConfiguration>(
   L"####-####-####-####-####", L"##################");
auto wordsApi = std::make_shared<WordsApi>(config);

auto requestDocument = std::shared_ptr<std::istream>(
   new std::ifstream(std::filesystem::path(L"Input1.docx"), std::istream::binary));
auto requestImageFile = std::shared_ptr<std::istream>(
   new std::ifstream(std::filesystem::path(L"Input2.docx"), std::istream::binary));
std::shared_ptr<requests::InsertWatermarkImageOnlineRequest> insertWatermarkImageOnline(
    new requests::InsertWatermarkImageOnlineRequest(
        requestDocument, requestImageFile
    )
);
auto insertedWatermarkImage = wordsApi->insertWatermarkImageOnline(insertWatermarkImageOnline);

auto requestDocument = std::shared_ptr<std::istream>(
   insertedWatermarkImage->document->values.begin, std::istream::binary));
std::shared_ptr<requests::ConvertDocumentRequest> convertDocument(
    new requests::ConvertDocumentRequest(
        requestDocument, std::make_shared<std::wstring>(L"docx")
    )
);
wordsApi->convertDocument(convertDocument);
using namespace aspose::words::cloud;

auto config = std::make_shared<ApiConfiguration>(
   L"####-####-####-####-####", L"##################");
auto wordsApi = std::make_shared<WordsApi>(config);

auto requestDocument = std::shared_ptr<std::istream>(
   new std::ifstream(std::filesystem::path(L"Input.docx"), std::istream::binary));
auto requestWatermarkText = std::make_shared<aspose::words::cloud::models::WatermarkText>();
requestWatermarkText->setText(std::make_shared<std::wstring>(L"This is the watermark text."));
requestWatermarkText->setRotationAngle(std::make_shared<double>(90));
std::shared_ptr<requests::InsertWatermarkTextOnlineRequest> insertWatermarkTextOnline(
    new requests::InsertWatermarkTextOnlineRequest(
        requestDocument, requestWatermarkText
    )
);
auto insertedWatermarkText = wordsApi->insertWatermarkTextOnline(insertWatermarkTextOnline);

auto requestDocument = std::shared_ptr<std::istream>(
   insertedWatermarkText->document->values.begin, std::istream::binary));
std::shared_ptr<requests::ConvertDocumentRequest> convertDocument(
    new requests::ConvertDocumentRequest(
        requestDocument, std::make_shared<std::wstring>(L"docx")
    )
);
wordsApi->convertDocument(convertDocument);
using namespace aspose::words::cloud;

auto config = std::make_shared<ApiConfiguration>(
   L"####-####-####-####-####", L"##################");
auto wordsApi = std::make_shared<WordsApi>(config);

auto requestDocument = std::shared_ptr<std::istream>(
   new std::ifstream(std::filesystem::path(L"Input.docx"), std::istream::binary));
std::shared_ptr<requests::DeleteWatermarkOnlineRequest> deleteWatermarkOnline(
    new requests::DeleteWatermarkOnlineRequest(
        requestDocument
    )
);
auto deletedWatermark = wordsApi->deleteWatermarkOnline(deleteWatermarkOnline);

auto requestDocument = std::shared_ptr<std::istream>(
   deletedWatermark->document->values.begin, std::istream::binary));
std::shared_ptr<requests::ConvertDocumentRequest> convertDocument(
    new requests::ConvertDocumentRequest(
        requestDocument, std::make_shared<std::wstring>(L"docx")
    )
);
wordsApi->convertDocument(convertDocument);
Run code
  
Copy C++ code to the clipboard

How to remove watermark in DOCX using C++

  1. Install Aspose.Words Cloud for C++
  2. Add a library reference (import the library) to your C++ project
  3. Configure API using your app keys
  4. Load DOCX document you want to remove the watermark from
  5. Create a request to remove the watermark
  6. Save the result to a convenient file format

C++ library to use watermarks in DOCX

Clone Aspose.Words Cloud SDK for C++ source code from GitHub. You can find detailed information on building and configuring the SDK in the "How to use the SDK" section.

To quickly get the necessary security credentials and access our REST API, please follow these Instructions in the documentation.

System Requirements

Refer to the Repository Documentation to see the details.

Other supported file formats

You can add a watermark to a document in other formats:

5%

Subscribe to Aspose Product Updates

Get monthly newsletters and offers directly delivered to your mailbox.

© Aspose Pty Ltd 2001-2024. All Rights Reserved.