Функция insertTextToPdf
Добрый день! Нам необходимо добавлять в пдф-файл готового подписанного всеми подразделениями кредитного решения наименование этого решения в левый верхний угол (см.скрин).
Нашли в инструментах алгоритма функцию insertTextToPdf, но описаний по ней не нашли. Подскажите, можно ли с ее помощью осуществить нашу цель? и если нет, то как это можно сделать? Если да, то тоже, можно, пожалуйста, поподробнее рассказать про возможности этой функции?
Войдите или Зарегистрируйтесь чтобы комментировать.
Комментарии
Добрый день. Подготовим ответ на ваши вопросы.
Для ваших целей подойдёт сочетание функций newPdfFile() и pdfFile.insertText()
Вот пример реализованного кейса:
Имеется файл в формате docx, размещённый в атрибуте "загруженный файл". Необходимо добавить в размещённый файл номер договора и сохранить этот файл в новом атрибуте.
Используемый алгоритм будет иметь следующий вид:
Перед написанием алгоритма необходимо подготовить стиль форматирования (экземпляр типа объекта "Основной стиль форматирования" [STYLES_DICTIONARY_INST]). Стиль форматирования будет использован для определения положения вставляемого текста.
Конечный результат выглядит следующим образом:
Подробно работа с этой функцией описана в статье на wiki
https://docs-public.gdcloud.org/platform/ru/newpdffile.html
Спасибо большое за ответ!
Подскажите, а можно ли применить данную функцию к уже существующему pdf-файлу, который берем из прикрепленных файлов заявки? Если да, то как? (у нас файлы только в формате pdf либо xls, файлы в формате word для данного функционала используются редко).
Пробую к файлу заявки применить функцию newPdfFile(), но выходит ошибка:
No signature of method: Script_algorithm_230787394.newPdfFile() is applicable for argument types: (pro.greendata.core.gdsl.DynamicObjectWrapper) values: [pro.greendata.core.gdsl.DynamicObjectWrapper@10cca76b]
Мой код:
Также вижу на панели инструментов функцию insertTextToPdf():
но необходима консультация по ее аргументам, т.к. добавление файла, текста и стиля в том же формате, как указано выше, и оставление остальных полей пустыми - выдает ошибку.
Подготовим ответы на ваши вопросы
Да, можно. Файл должен быть предварительно размещён в атрибуте. В моём примере это атрибут "загруженные файлы".
С какой версией платформы вы работаете?
6-domdev.246, сборка 622429 (65a37a7) от 26.11.2024
В моем примере это атрибут "Прикрепленные файлы" - атрибут типа Файл, с множественным выбором
Беру конкретный экземпляр данного атрибута и передаю его в функцию newPdfFile()
В версиях 6 и 7 отличается синтаксис функции insertTextToPdf(). Пример на моих скриншотах был настроен на версии distr.
Для релиза 6 функция содержит следующий набор аргументов:
text style - Стиль форматирования вставляемого текста, указывается значение из системного справочника "Стиль форматирования (STYLES_DICTIONARY)" (используемые параметры: Размер шрифта, Переносить текст по словам, Курсив, Жирный шрифт, Цвет шрифта, Цвет фона).
Если параметр не заполнен, то по умолчанию используется экземпляр "standard style"
Параметры экземпляра: Размер шрифта - 12; Переносить текст по словам - да; Курсив - нет; Жирный шрифт - нет; Цвет шрифта - черный; Цвет фона - белый
text length - Максимальная длинна строки вставляемого текста (возможно указание непосредственного значения, переменной или алгоритма). В случае если вставляемый текст больше чем указанное значение, то он переносится на следующую строку. Перенос осуществляется в зависимости от настроек стиля (атрибут Переносить текст по словам).
Если параметр не заполнен, то по умолчанию длинна строки ограничена шириной страницы;
page - Номер страницы документа. Целое число, начиная с 1 (возможно указание непосредственного значения, переменной или алгоритма, указание нескольких страниц предусматривается в массиве через ArrayList).
Если номер не заполнен, то по умолчанию текст проставляется на первой странице;
Дополнительные условия при модификации PDF файла:
Если указано несколько страниц, то указанный текст должен отражаться несколько раз на указанных страницах.
Производится модификация указанного файла, новый файл не создается;