Protect your documents from unauthorized distribution and add the watermark online. To do this, just load a PDF, Word or other document format and add a text or image watermark using C++. Then save the watermarked PDF or Word document in a convenient format such as DOC, DOCX, PDF, HTML, RTF, XPS and others. You can also remove the watermark from documents to make them easier to process unless it violates anyone's rights.
With this C++ API, developers can add a watermark to PDF, Word, or other documents online. You can create the watermark using text or an image and then insert that watermark into your PDF or Word document by setting the overlay angle 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.
The given C++ SDK is also helpful to remove watermarks. For example, removing a watermark in Word means that you can load the desired Word document stamped with a text or image watermark, remove this watermark from the document using C++, and then save the output file in a convenient format.
To evaluate our C++ API, load the document to which you want to add a watermark and the watermark as an image or text. Then select a convenient export file format – DOCX, PDF, MD, HTML, TXT, DOC, RTF, EPUB, XPS and others.
Use the following example to see how it works:
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 requestImageStream = std::shared_ptr<std::istream>(
new std::ifstream(std::filesystem::path(L"Input2.jpg"), std::istream::binary));
auto requestWatermarkData =
std::make_shared<aspose::words::cloud::models::WatermarkDataImage>();
requestWatermarkData->setImage(
std::make_shared<aspose::words::cloud::models::FileReference>(requestImageStream));
std::shared_ptr<requests::InsertWatermarkOnlineRequest> insertWatermarkRequest(
new requests::InsertWatermarkOnlineRequest(
requestDocument, requestWatermarkData
)
);
auto insertWatermarkResult = wordsApi->InsertWatermarkOnline(insertWatermarkRequest);
auto resultDocument = std::shared_ptr<std::istream>(
insertWatermarkResult->document->values.begin, std::istream::binary));
std::shared_ptr<requests::ConvertDocumentRequest> convertRequest(
new requests::ConvertDocumentRequest(
resultDocument, std::make_shared<std::wstring>(L"docx")
)
);
wordsApi->convertDocument(convertRequest);
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 requestWatermarkData =
std::make_shared<aspose::words::cloud::models::WatermarkDataText>();
requestWatermarkData->setText(std::make_shared<std::wstring>(L"This is the watermark text"));
requestWatermarkData->setLayout(
std::make_shared<aspose::words::cloud::models::WatermarkDataText::Layout>(
aspose::words::cloud::models::WatermarkDataText::Layout::DIAGONAL));
std::shared_ptr<requests::InsertWatermarkOnlineRequest> insertWatermarkRequest(
new requests::InsertWatermarkOnlineRequest(
requestDocument, requestWatermarkData
)
);
auto insertWatermarkResult = wordsApi->InsertWatermarkOnline(insertWatermarkRequest);
auto resultDocument = std::shared_ptr<std::istream>(
insertWatermarkResult->document->values.begin, std::istream::binary));
std::shared_ptr<requests::ConvertDocumentRequest> convertRequest(
new requests::ConvertDocumentRequest(
resultDocument, std::make_shared<std::wstring>(L"docx")
)
);
wordsApi->convertDocument(convertRequest);
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);
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.
Refer to the Repository Documentation to see the details.