Водяной знак в документе определяет состояние документа с такими текстами, как конфиденциальный, черновик и т. д., и затрудняет копирование исходного документа. Водяные знаки могут быть графическими или текстовыми и часто используются в документах PDF. Возможно, вам потребуется добавить водяные знаки в документы PDF в ваших приложениях C++. Для этого в этой статье вы узнаете, как добавлять и удалять текстовые и графические водяные знаки из документов PDF с помощью C++.

C++ API для вставки и удаления водяных знаков текста/изображения

Aspose.PDF for C++ — это библиотека C++, позволяющая создавать, читать и обновлять PDF-документы. Кроме того, API поддерживает вставку и удаление водяных знаков изображения/текста в документах PDF. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела загрузки.

PM> Install-Package Aspose.PDF.Cpp

Вставьте текстовый водяной знак в файл PDF с помощью С++

С помощью Aspose.PDF for C++ API вы можете управлять стилем шрифта, текстом, цветом, углом наклона, непрозрачностью и т. д. текстового водяного знака. Ниже приведены шаги для добавления текстового водяного знака в файл PDF.

В следующем примере кода показано, как добавить текстовый водяной знак в файл PDF с помощью C++.

// Откройте исходный PDF-документ
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Создайте экземпляр класса TextStamp.
System::SharedPtr<TextStamp> textStamp = MakeObject<TextStamp>(u"CONFIDENTIAL");

// Установите положение водяного знака
textStamp->set_XIndent(70);
textStamp->set_YIndent(300);

// Установить свойства текста
textStamp->get_TextState()->set_Font(FontRepository::FindFont(u"Arial"));
textStamp->get_TextState()->set_FontSize(72.0F);
textStamp->get_TextState()->set_ForegroundColor(Aspose::Pdf::Color::get_Red());
textStamp->set_Opacity(0.4);
textStamp->set_RotateAngle(45);
textStamp->setStampId(123456);

// Добавить водяной знак на страницу PDF
pdfDocument->get_Pages()->idx_get(1)->AddStamp(textStamp);

// Сохраните PDF-файл
pdfDocument->Save(u"OutputDirectory\\Text-Watermark-Out.pdf", SaveFormat::Pdf);
Изображение выходного PDF-файла, созданного с помощью примера кода

Изображение выходного PDF-файла, созданного с помощью примера кода

Вставьте водяной знак изображения в файл PDF с помощью С++

Водяные знаки изображения обычно используются для демонстрации права собственности на документ с помощью логотипа или любого другого идентифицируемого изображения. Вы можете добавить водяной знак изображения в файлы PDF, используя шаги, указанные ниже.

В следующем примере кода показано, как добавить водяной знак изображения в файл PDF с помощью C++.

// Откройте исходный PDF-документ
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Создайте экземпляр класса ImageStamp.
System::SharedPtr<ImageStamp> imageStamp = MakeObject<ImageStamp>(u"SourceDirectory\\aspose.png");

// Установите положение водяного знака
imageStamp->set_XIndent(150);
imageStamp->set_YIndent(350);

// Установить другие свойства
imageStamp->set_Height(100);
imageStamp->set_Width(300);
imageStamp->set_RotateAngle(45);
imageStamp->set_Opacity(0.4);
imageStamp->setStampId(12345678);

// Добавить водяной знак на страницу PDF
pdfDocument->get_Pages()->idx_get(1)->AddStamp(imageStamp);

// Сохраните PDF-файл
pdfDocument->Save(u"OutputDirectory\\Image-Watermark-Out.pdf", SaveFormat::Pdf);
Изображение выходного PDF-файла, созданного с помощью примера кода

Изображение выходного PDF-файла, созданного с помощью примера кода

Удалить водяной знак текста или изображения из файла PDF с помощью С++

Могут быть сценарии, когда вам нужно удалить водяные знаки из документа PDF. В предыдущих примерах мы определили идентификаторы как текстовых, так и графических водяных знаков. Мы будем использовать эти идентификаторы для удаления водяных знаков из документов PDF. Ниже приведены шаги по удалению водяных знаков из файлов PDF.

В следующем примере кода показано, как удалить текстовые и графические водяные знаки из PDF-файлов с помощью C++.

// Создайте экземпляр класса PdfContentEditor.
System::SharedPtr<PdfContentEditor> contentEditor = MakeObject<PdfContentEditor>();

// Откройте файл PDF, содержащий водяной знак.
contentEditor->BindPdf(u"SourceDirectory\\SampleImageWatermark.pdf");

// Удалить водяной знак по id
contentEditor->DeleteStampById(12345678);

// Сохраните PDF-файл
pdfDocument->Save(u"OutputDirectory\\Remove-Watermark-Out.pdf", SaveFormat::Pdf);

Получить бесплатную лицензию

Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как работать с водяными знаками в файлах PDF с помощью C++. В частности, вы узнали, как добавлять и удалять графические и текстовые водяные знаки из PDF-документов с помощью Aspose.PDF for C++ API. API предоставляет множество дополнительных функций для автоматизации ваших задач, связанных с PDF. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут какие-либо вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также