Добавление текстовых штампов в PDF файл

Добавление текстового штампа на C++

Вы можете использовать класс TextStamp для добавления текстового штампа в PDF файл. Класс TextStamp предоставляет свойства, необходимые для создания штампа на основе текста, такие как размер шрифта, стиль шрифта и цвет шрифта и т.д. Чтобы добавить текстовый штамп, вам нужно создать объект Document и объект TextStamp, используя необходимые свойства. После этого вы можете вызвать метод AddStamp страницы для добавления штампа в PDF. Следующий фрагмент кода показывает, как добавить текстовый штамп в PDF файл.

void AddTextStampToPDFFile() {

    String _dataDir("C:\\Samples\\");

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

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

    // Создать текстовый штамп
    auto textStamp =MakeObject<TextStamp>(u"Sample Stamp");

    // Установить, является ли штамп фоном
    textStamp->set_Background(true);
    // Установить происхождение
    textStamp->set_XIndent(100);
    textStamp->set_YIndent(100);
    // Повернуть штамп
    textStamp->set_Rotate(Rotation::on90);

    // Установить свойства текста
    textStamp->get_TextState()->set_Font(FontRepository::FindFont(u"Arial"));
    textStamp->get_TextState()->set_FontSize(14.0F);
    textStamp->get_TextState()->set_FontStyle(FontStyles::Bold);
    textStamp->get_TextState()->set_FontStyle(FontStyles::Italic);
    textStamp->get_TextState()->set_ForegroundColor(Color::get_Green());
    // Добавить штамп на конкретную страницу
    document->get_Pages()->idx_get(1)->AddStamp(textStamp);

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

Определение выравнивания для объекта TextStamp

Добавление водяных знаков в PDF-документы — это одна из часто востребованных функций, и Aspose.PDF для C++ полностью поддерживает добавление как изображений, так и текстовых водяных знаков. У нас есть класс с именем TextStamp, который предоставляет возможность добавлять текстовые штампы в PDF-файл. Недавно возникло требование поддерживать возможность указания выравнивания текста при использовании объекта TextStamp. Поэтому, чтобы удовлетворить это требование, мы ввели свойство TextAlignment в класс TextStamp. С помощью этого свойства мы можем указать горизонтальное выравнивание текста.

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

void DefineAlignmentTextStamp() {

    String _dataDir("C:\\Samples\\");

    // String for input file name
    String inputFileName("AddTextStamp.pdf");
    String outputFileName("AddTextStamp_out.pdf");

    // Open document
    auto document = MakeObject<Document>(_dataDir + inputFileName);

    // instantiate FormattedText object with sample string
    auto text = MakeObject<Aspose::Pdf::Facades::FormattedText>("This");

    // add new text line to FormattedText
    text->AddNewLineText(u"is sample");
    text->AddNewLineText(u"Center Aligned");
    text->AddNewLineText(u"TextStamp");
    text->AddNewLineText(u"Object");

    // create TextStamp object using FormattedText
    auto stamp = MakeObject<TextStamp>(text);
    // specify the Horizontal Alignment of text stamp as Center aligned
    stamp->set_HorizontalAlignment(HorizontalAlignment::Center);
    // specify the Vertical Alignment of text stamp as Center aligned
    stamp->set_VerticalAlignment(VerticalAlignment::Center);
    // specify the Text Horizontal Alignment of TextStamp as Center aligned
    stamp->set_TextAlignment(HorizontalAlignment::Center);
    // set top margin for stamp object
    stamp->set_TopMargin(20);
    // add stamp to all pages of PDF file
    document->get_Pages()->idx_get(1)->AddStamp(stamp);

    // save output document
    document->Save(_dataDir + outputFileName);
}

Заливка текста штриховкой как штамп в PDF-файле

Мы реализовали настройку режима рендеринга для сценариев добавления и редактирования текста. Чтобы отобразить штрихованный текст, создайте объект TextState и установите RenderingMode на TextRenderingMode.StrokeText, а также выберите цвет для свойства StrokingColor. Затем, привяжите TextState к штампу, используя метод BindTextState().

Следующий фрагмент кода демонстрирует добавление текста с заливкой штриховкой:

void FillStrokeTextAsStampInPDFFile() {

    String _dataDir("C:\\Samples\\");

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

    // Создать объект TextState для передачи расширенных свойств
    auto ts = MakeObject<TextState>();

    // Установить цвет для штриховки
    ts->set_StrokingColor(Color::get_Gray());

    // Установить режим рендеринга текста
    ts->set_RenderingMode(TextRenderingMode::StrokeText);

    // Загрузить входной PDF-документ
    auto fileStamp = MakeObject<Aspose::Pdf::Facades::PdfFileStamp>(MakeObject<Document>(_dataDir + inputFileName));

    auto stamp = MakeObject<Aspose::Pdf::Facades::Stamp>();

    auto formattedText = MakeObject<Aspose::Pdf::Facades::FormattedText>(u"PAID IN FULL", Color::get_Gray(), Aspose::Pdf::Facades::EncodingType::Winansi, true, 78);
    stamp->BindLogo(formattedText);

    // Привязать TextState
    stamp->BindTextState(ts);

    // Установить X,Y начало
    stamp->SetOrigin(100, 100);
    stamp->set_Opacity(5);
    stamp->set_BlendingSpace(Aspose::Pdf::Facades::BlendingColorSpace::DeviceRGB);
    stamp->set_Rotation(45.0F);
    stamp->set_IsBackground(false);

    // Добавить штамп
    fileStamp->AddStamp(stamp);
    fileStamp->Save(_dataDir + outputFileName);
    fileStamp->Close();
}