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

Добавление текстового штампа с помощью Java

Aspose.PDF для Java предоставляет класс TextStamp для добавления текстового штампа в PDF файл. The TextStamp класс предоставляет необходимые методы для указания размера шрифта, стиля шрифта и цвета шрифта и т.д. для объекта штампа. Чтобы добавить текстовый штамп, сначала вам нужно создать объект Document и объект TextStamp с использованием необходимых методов. После этого вы можете вызвать метод addStamp(..) класса Page, чтобы добавить штамп в PDF документ.

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

package com.aspose.pdf.examples;

import com.aspose.pdf.*;
import com.aspose.pdf.facades.*;
import com.aspose.pdf.facades.Stamp;

public class ExampleStampingImage {
    // Путь к каталогу документов.
    private static String _dataDir = "/home/admin1/pdf-examples/Samples/";

    public static void AddTextStamp() {
        // открыть документ
        Document pdfDocument = new Document("input.pdf");
        // создать текстовый штамп
        TextStamp textStamp = new TextStamp("Sample Stamp");
        // установить, является ли штамп фоном
        textStamp.setBackground(true);
        // установить происхождение
        textStamp.setXIndent(100);
        textStamp.setYIndent(100);
        // повернуть штамп
        textStamp.setRotate(Rotation.on90);
        // установить свойства текста
        textStamp.getTextState().setFont(FontRepository.findFont("Arial"));
        textStamp.getTextState().setFontSize(14.0F);
        textStamp.getTextState().setFontStyle(FontStyles.Bold);
        textStamp.getTextState().setFontStyle(FontStyles.Italic);
        textStamp.getTextState().setForegroundColor(Color.getGreen());
        // добавить штамп на конкретную страницу
        pdfDocument.getPages().get_Item(1).addStamp(textStamp);
        // сохранить выходной документ
        pdfDocument.save("TextStamp_output.pdf");
    }

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

Добавление водяных знаков в PDF документы — одна из часто востребованных функций, и Aspose.PDF для Java полностью способен добавлять как изображения, так и текстовые водяные знаки. Класс TextStamp предоставляет возможность добавления текстовых штампов в PDF файл. Недавно была необходимость поддерживать функцию задания выравнивания текста при использовании объекта TextStamp. Поэтому, чтобы удовлетворить это требование, мы ввели метод setTextAlignment(..) в класс TextStamp. Используя этот метод, вы можете задать горизонтальное выравнивание текста.

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

    public static void DefineAlignmentTextStamp() {
        // Создание объекта Document с входным файлом
        Document pdfDocument = new Document("input.pdf");
        // Создание объекта FormattedText с примером строки
        FormattedText text = new FormattedText("This");
        
        // добавление новой строки текста в FormattedText
        text.addNewLineText("is sample");
        text.addNewLineText("Center Aligned");
        text.addNewLineText("TextStamp");
        text.addNewLineText("Object");
        // создание объекта TextStamp с использованием FormattedText
        TextStamp stamp = new TextStamp(text);
        // указание горизонтального выравнивания текстового штампа как центрированного
        stamp.setHorizontalAlignment(HorizontalAlignment.Center);
        // указание вертикального выравнивания текстового штампа как центрированного
        stamp.setVerticalAlignment(VerticalAlignment.Center);
        // указание горизонтального выравнивания текста TextStamp как центрированного
        stamp.setTextAlignment(HorizontalAlignment.Center);
        // установка верхнего поля для объекта штампа
        stamp.setTopMargin(20);
        // добавление штампа на все страницы PDF файла
        pdfDocument.getPages().get_Item(1).addStamp(stamp);
        
        // сохранение выходного документа
        pdfDocument.save("TextStamp_output.pdf");
    }

Заполнение текста обводкой как штамп в PDF-файле

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

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

   public static void FillStrokeTextAsStampInPDFFile(){
        // Создать объект TextState для передачи расширенных свойств
        TextState ts = new TextState();
        
        // Установить цвет для обводки
        ts.setStrokingColor(Color.getGray());
        
        // Установить режим рендеринга текста
        ts.setRenderingMode (TextRenderingMode.StrokeText);
        
        // Загрузить входной PDF-документ
        PdfFileStamp fileStamp = new PdfFileStamp(new Document(_dataDir + "input.pdf"));

        Stamp stamp = new Stamp();
        stamp.bindLogo(new FormattedText("PAID IN FULL", java.awt.Color.GRAY, "Arial", EncodingType.Winansi, true, 78));

        // Связать TextState
        stamp.bindTextState(ts);
        // Установить X,Y координаты
        stamp.setOrigin(100, 100);
        stamp.setOpacity (5);
        stamp.setBlendingSpace (BlendingColorSpace.DeviceRGB);
        stamp.setRotation (45.0F);
        stamp.setBackground(false);
        // Добавить штамп
        fileStamp.addStamp(stamp);
        fileStamp.save(_dataDir + "ouput_out.pdf");
        fileStamp.close();
    }