Может ли PDTextField установить цвет текста с альфа-значением? - PullRequest
0 голосов
/ 11 апреля 2020

В настоящее время я устанавливаю строку внешнего вида по умолчанию, чтобы установить цвет текста следующим образом:

String defaultAppearance = "/Helv 12 Tf 0 0 1 rg";

field.setDefaultAppearance(defaultAppearance);

Не могу найти нигде, если Существуют и другие параметры для строки форматирования, отличные от rg для RGB или g для черного и белого.

Есть ли способ установить цвет текста на цвет rgba, установить альфа-текст или документацию по формату строки внешнего вида по умолчанию, на которую я мог бы посмотреть?

1 Ответ

1 голос
/ 12 апреля 2020

Вы ищете документацию по формату строки внешнего вида по умолчанию . Вы можете найти это (удивительно!) В спецификации PDF 32000:

DA string (Обязательный; наследуемый) Строка внешнего вида по умолчанию, содержащая последовательность допустимых графических изображений или операторов состояния текста, которые определяют такие свойства, как размер и цвет текста поля.

(ISO 32000-2, таблица 228 - Дополнительные записи, общие для всех полей, содержащих переменный текст)

И после этого более подробно:

Строка внешнего вида по умолчанию ( DA ) содержит все графические состояния или операторы состояния текста, необходимые для установить sh параметры состояния графики, такие как размер и цвет текста, для отображения переменного текста поля. В этой строке должны присутствовать только те операторы, которые разрешены в текстовых объектах (см. «Рисунок 9 - Графические объекты»). Как минимум, строка должна содержать оператор Tf (текстовый шрифт) вместе с двумя операндами, шрифтом и размером. Указанное значение шрифта должно совпадать с именем ресурса в записи Font словаря ресурсов по умолчанию (на которое ссылается запись DR словаря интерактивной формы; см. «Таблицу 224 - Записи в интерактивная форма словаря "). Нулевое значение для размера означает, что шрифт должен иметь автоматический размер: его размер должен быть вычислен как функция, зависящая от реализации.

Строка внешнего вида по умолчанию должна содержать не более одного Tm (текстовая матрица) оператора. Если этот оператор присутствует, интерактивный процессор PDF должен заменить компоненты горизонтального и вертикального перевода значениями позиционирования, которые он сочтет необходимыми, на основе значения поля, атрибута quadding ( Q ) и любых правил компоновки это использует. Если строка внешнего вида по умолчанию не содержит оператора Tm , зритель должен вставить один в поток внешнего вида (с соответствующими горизонтальными и вертикальными компонентами перевода) после строки внешнего вида по умолчанию и перед операторами позиционирования текста и отображения текста для переменный текст.

(ISO 32000-2 раздел 12.7.4.3 - Переменный текст)

Согласно этому рисунку 9 допустимыми классами операций в текстовом объекте являются:

excerpt of figure 9

Среди них операторы отображения текста и помеченного содержимого не являются операторами графического состояния или состояния текста, поэтому доступны следующие операторы:

  • Общее графическое состояние ш, J, J, M, D, RI, I, GS
  • Цвет CS, CS, S C, SCN, S c, SCN, G, G, RG, RG, K, K
  • Текстовое состояние T c, Tw, Tz, TL, Tf, Tr, Ts
  • Позиционирование текста Td, TD, Tm, T *

(ISO 32000-2, Таблица 50 - Категории операторов)

Очевидно, что здесь я не могу скопировать спецификацию всех этих операторов.

Особый интерес представляет общий оператор состояния графики gs , который позволяет использовать ресурс ExtGState для установки прозрачности, как это уже было предложено Тильманом в комментарий к вашему вопросу.

Одно предупреждение, однако, многие процессоры PDF просто ожидают настройки шрифта ( Tf ) и простой настройки цвета ( rg / g / k ) и игнорируйте все остальное.

...