Добавление текстовых штампов в PDF программно
Добавление текстового штампа с использованием Java
Aspose.PDF для PHP через Java предоставляет класс TextStamp для добавления текстового штампа в PDF файл. The TextStamp класс предоставляет необходимые методы для указания размера шрифта, стиля шрифта, цвета шрифта и т.д. для объекта штампа. Чтобы добавить текстовый штамп, сначала нужно создать объект Document и объект TextStamp с использованием необходимых методов. После этого, вы можете вызвать метод addStamp(..) класса Page для добавления штампа в PDF документ.
Следующий фрагмент кода показывает, как добавить текстовый штамп в PDF файл.
// Открыть документ
$document = new Document($inputFile);
$pages = $document->getPages();
$colors = new Color();
// создать текстовый штамп
$textStamp = new TextStamp("Sample Stamp");
// установить, является ли штамп фоном
$textStamp->setBackground(true);
// установить местоположение
$textStamp->setXIndent(100);
$textStamp->setYIndent(100);
// повернуть штамп
$textStamp->setRotate((new Rotation())->On90);
// установить свойства текста
$fontRepository = new FontRepository();
$fontStyles = new FontStyles();
$textStamp->getTextState()->setFont($fontRepository->findFont("Arial"));
$textStamp->getTextState()->setFontSize(14);
$textStamp->getTextState()->setFontStyle($fontStyles->Bold | $fontStyles->Italic);
$textStamp->getTextState()->setForegroundColor($colors->getGreen());
// добавить штамп на конкретную страницу
$pages->get_Item(1)->addStamp($textStamp);
// Сохранить выходной документ
$document->save($outputFile);
$document->close();
Определение выравнивания для объекта TextStamp
Добавление водяных знаков в PDF-документы является одной из часто запрашиваемых функций, и Aspose.PDF для PHP через Java полностью способен добавлять как изображения, так и текстовые водяные знаки. Класс TextStamp предоставляет возможность добавлять текстовые штампы в PDF-файл. Недавно появилась необходимость поддерживать функцию указания выравнивания текста при использовании объекта TextStamp. Поэтому, чтобы удовлетворить это требование, мы ввели метод setTextAlignment(..) в классе TextStamp. С помощью этого метода вы можете указать горизонтальное выравнивание текста.
Следующие фрагменты кода показывают пример того, как загрузить существующий PDF-документ и добавить TextStamp поверх него.
// Открыть документ
$document = new Document($inputFile);
$pages = $document->getPages();
$colors = new Color();
// создать объект FormattedText с примерной строкой
$text = new FormattedText("Это");
// добавить новую строку текста в FormattedText
$text->addNewLineText("пример");
$text->addNewLineText("Центрально выровненный");
$text->addNewLineText("Текстовый штамп");
$text->addNewLineText("Объект");
// создать текстовый штамп
$textStamp = new TextStamp($text);
// указать горизонтальное выравнивание текстового штампа как центральное
$textStamp->setHorizontalAlignment((new HorizontalAlignment)->getCenter());
// указать вертикальное выравнивание текстового штампа как центральное
$textStamp->setVerticalAlignment((new VerticalAlignment())->getCenter);
// указать горизонтальное выравнивание текста TextStamp как центральное
$textStamp->setTextAlignment((new HorizontalAlignment)->getCenter());
// установить верхнее поле для объекта штампа
$textStamp->setTopMargin(20);
// добавить штамп на определенную страницу
$pages->get_Item(1)->addStamp($textStamp);
// Сохранить выходной документ
$document->save($outputFile);
$document->close();
Заполнение текста обводкой как штамп в PDF файле
Мы реализовали установку режима рендеринга для сценариев добавления и редактирования текста. Для рендеринга текста с обводкой создайте объект TextState и установите RenderingMode в TextRenderingMode.StrokeText, а также выберите цвет для свойства StrokingColor. Затем свяжите TextState с штампом, используя метод bindTextState().
Следующий фрагмент кода демонстрирует добавление текста с обводкой:
// Создать объект TextState для передачи расширенных свойств
$ts = new TextState();
// Установить цвет для обводки
$ts->setStrokingColor((new Color())->getGray());
// Установить режим рендеринга текста
$ts->setRenderingMode(TextRenderingMode::$StrokeText);
// Загрузить входной PDF-документ
$fileStamp = new PdfFileStamp(new Document($inputFile));
$stamp = new Stamp();
$stamp->bindLogo(
new FormattedText("PAID IN FULL",
(new Color())->getGray(), "Arial",
facades_EncodingType::$WinAnsi,
true, 78));
// Связать TextState
$stamp->bindTextState($ts);
// Установить начало координат X,Y
$stamp->setOrigin(100, 100);
$stamp->setOpacity (5);
$stamp->setBlendingSpace(BlendingColorSpace::$DeviceRGB);
$stamp->setRotation (45.0);
$stamp->setBackground(false);
// Добавить штамп
$fileStamp->addStamp($stamp);
$fileStamp->save($outputFile);
$fileStamp->close();