Добавление штампов изображений в PDF программно

Добавление штампа изображения в PDF файл

Вы можете использовать класс ImageStamp для добавления штампа изображения в PDF файл. Класс ImageStamp предоставляет свойства, необходимые для создания штампа на основе изображения, такие как высота, ширина, непрозрачность и так далее.

Чтобы добавить штамп изображения:

  1. Создайте объект Document и объект ImageStamp с использованием необходимых свойств.
  2. Вызовите метод AddStamp класса Page для добавления штампа в PDF.

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

using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Text;

void AddImageStampToPDFFile()
{    
    String _dataDir("C:\\Samples\\");

    // Строка для имени входного файла
    String inputFileName("AddImageStamp.pdf");

    String outputFileName("AddImageStamp_out.pdf");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + inputFileName);

    // Создать штамп изображения
    auto imageStamp = MakeObject<ImageStamp>(_dataDir + u"aspose-logo.jpg");
    imageStamp->set_Background(true);
    imageStamp->set_XIndent(100);
    imageStamp->set_YIndent(100);
    imageStamp->set_Height(48);
    imageStamp->set_Width(225);
    imageStamp->set_Rotate(Rotation::on270);
    imageStamp->set_Opacity(0.5);
   
    // Добавить штамп на определенную страницу    
    document->get_Pages()->idx_get(1)->AddStamp(imageStamp);

    // Сохранить выходной документ
    document->Save(_dataDir + outputFileName);
}

Контроль качества изображения при добавлении штампа

При добавлении изображения в качестве объекта штампа, вы можете контролировать качество изображения. Свойство Quality класса ImageStamp используется для этой цели. Оно указывает качество изображения в процентах (допустимые значения от 0 до 100).

void ControlImageQualityWhenAddingStamp() {
    
    String _dataDir("C:\\Samples\\");

    // Строка для имени входного файла
    String inputFileName("AddImageStamp.pdf");
    String outputFileName("ControlImageQuality_out.pdf");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + inputFileName);

    // Создать штамп изображения
    auto imageStamp = MakeObject<ImageStamp>(_dataDir + u"aspose-logo.jpg");

    imageStamp->set_Quality(10);
    document->get_Pages()->idx_get(1)->AddStamp(imageStamp);    
    document->Save(_dataDir + u"ControlImageQuality_out.pdf");
}

Штамп изображения как фон в плавающем блоке

Aspose.PDF API позволяет добавить штамп изображения как фон в плавающем блоке. Свойство BackgroundImage класса FloatingBox может использоваться для установки фонового изображения для плавающего блока, как показано в следующем примере кода.

void ImageStampAsBackgroundInFloatingBox() {
    
    String _dataDir("C:\\Samples\\");

    // Строка для имени входного файла
    String inputFileName("AddImageStamp.pdf");
    String outputFileName("AddImageStampAsBackgroundInFloatingBox_out.pdf");

    // Создание объекта Document
    auto document = MakeObject<Document>();

    // Добавление страницы в PDF документ
    auto page = document->get_Pages()->Add();

    // Создание объекта FloatingBox
    auto aBox = MakeObject<FloatingBox>(200, 100);

    // Установка левой позиции для FloatingBox
    aBox->set_Left(40);
    // Установка верхней позиции для FloatingBox
    aBox->set_Top(80);
    // Установка горизонтального выравнивания для FloatingBox
    aBox->set_HorizontalAlignment(HorizontalAlignment::Center);
    
    // Добавление текстового фрагмента в коллекцию параграфов FloatingBox    
    aBox->get_Paragraphs()->Add(MakeObject<TextFragment>(u"main text"));

    // Установка границы для FloatingBox
    aBox->set_Border(MakeObject<BorderInfo>(BorderSide::All, Color::get_Red()));

    // Добавление фонового изображения
    auto image = MakeObject<Image>();
    image->set_File(_dataDir + u"aspose-logo.png");
    aBox->set_BackgroundImage(image);

    // Установка фонового цвета для FloatingBox
    aBox->set_BackgroundColor(Color::get_Yellow());

    // Добавление FloatingBox в коллекцию параграфов объекта страницы
    page->get_Paragraphs()->Add(aBox);
    // Сохранение PDF документа
    document->Save(_dataDir + outputFileName);
}