Автоматические подписи и состояния push-кнопок XFA

HPDFXFAWriteHeadlessPDF создаёт настоящие нативные виджеты push-кнопок из раскладки XFA, включая эффективные скалярные или XHTML-подписи, переданные программы шрифтов, видимость, флаги readonly и метаданные интерактивной подсветки

Каждый виджет имеет FT Btn, флаг pushbutton Ff, явный normal appearance и Unicode-подпись MK.CA, выведенную из его фактического отрисованного содержимого; кнопка не становится текстовым полем ввода, и плейсхолдерное PDF-поле не требуется

Видимая normal-подпись также удерживает запись DA, чей алиас шрифта разрешается через AcroForm.DR в фактический шрифт Type0 normal-подписи; пустой шрифт-плейсхолдер для совместимости не встраивается

Содержимое и раскладка подписи

Размер, насыщенность, начертание, гарнитура и цвет шрифта скалярной подписи, плюс встроенные стили XHTML и смешанные базовые линии, используют существующий нативный декодер rich text и сборщик appearance

CaptionFontFamilies поставляет реальные программы regular, bold, italic и bold-italic и именованные семейства; начертания никогда не синтезируются, а программы шрифтов не ищутся и не скачиваются

Пробельный текст между встроенными элементами XHTML сохраняется, поэтому соседние по-разному стилизованные слова сохраняют авторские разделители

Отсутствующее содержимое подписи сохраняет существующий fallback на имя поля, явно пустое содержимое остаётся пустым, а непустые скалярные подписи сохраняют авторские ведущие и замыкающие пробелы; скрытые, неактивные и невидимые подписи не рисуют текст и не сериализуют регенерируемую видимую подпись

Поля поля и подписи, размещение подписи, резерв и выравнивание абзаца определяют фактическую область подписи; отсутствующий, нулевой и дефолтный по схеме резерв -1 используют естественный размер без автоматического переноса, положительный резерв разрешает перенос, а встроенное размещение игнорирует резерв

Фиксированные границы поля обрезают чрезмерно большие подписи; явные разрывы абзацев остаются активными, а эффективные overlay-переопределения экземпляров сохраняют неизменённых соседей шаблона

Подсветка и appearance состояний

Подсветка XFAНативный результат PDF
inverted или отсутствуетH I с normal AP.N; читатель применяет инвертированную обработку активации
noneH N с normal AP.N
outlineH O с normal AP.N; читатель применяет рамочную обработку активации
pushH P с фактическими normal AP.N, down AP.D и rollover AP.R Forms; down-подпись смещается, изображая нажатие

В режиме push скалярные элементы с именами down и rollover поставляют соответствующие подписи и метаданные MK.AC или MK.RC; отсутствующий элемент состояния использует normal-подпись, а явно пустой элемент даёт пустое состояние

Альтернативные элементы не влияют на другие режимы подсветки, и каждое сгенерированное состояние удерживает собственный фактический appearance и граф переданных шрифтов

Транзакции и лимиты

Фактические изменения событий повторяющихся экземпляров можно сохранить как XDP, перезагрузить и скормить создателю; немедленное чтение, overlay и замена полезной нагрузки целиком, изоляция первого экземпляра и rollback неудавшегося события остаются операциями нативного рантайма

Исходные узлы и байты, программы шрифтов, единицы глифов, объекты и байты кандидата ограничены; отмена и сбои подготовки сохраняют байты, длину и позицию потока вызывающего

Финальная запись в поток вызывающего — граница фиксации; исключение, брошенное этим потоком при записи, может оставить частичную запись и не подаётся как откаченное неперемещаемое назначение

Этот потребитель создаёт сохранённые appearance-состояния виджетов; последующее выполнение XFA-скриптов силами читателя или пересборка appearance, rich-содержимое альтернативных элементов, иконки кнопок, внешние медиа и рендеринг произвольного чужого XML остаются отдельными возможностями

Сопоставления подсветки и резерва подписи следуют семантике кнопок XFA 3.3 и подписей

Метаданные эмиттера · Rich-подписи Boolean · Автоматическое нативное создание XFA