Автоматические rich-подписи XFA

Модули: HPDFXFA, HPDFXFAHeadless и HPDFHeadlessAppearance

HPDFXFAWriteHeadlessPDF потребляет эффективные значения подписей checkbox и radio прямо из сохранённого XDP и создаёт настоящие нативные appearance Forms со встроенными шрифтами

Эффективное содержимое подписи

Скалярные значения подписей и содержимое тела exData XHTML становятся нативным текстом; тело обязано использовать пространство имён http://www.w3.org/1999/xhtml

Частичная overlay-форма повторяющегося экземпляра меняет текст и атрибуты соответствующего элемента шаблона, сохраняя неизменённых соседей шаблона и их пространство имён XHTML

Успешная замена полезной нагрузки целиком через exData.loadXML подставляет фактическое импортированное тело вместо обратного слияния устаревшего содержимого шаблона в подпись

Комментарии и инструкции обработки остаются в исходном сохранённом XDP, но опускаются из копии для рендеринга, так что их содержимое никогда не становится видимым текстом подписи

Копия для рендеринга ограничена 4096 узлами, глубиной 64, 65536 рабочих шагов overlay и 1 МиБ учитываемых исходных и сериализованных XHTML; нативный декодер и сборщики appearance сохраняют собственные лимиты run, глифов и байтов

Реальные шрифтовые начертания и стили

Передавайте CaptionFontFamilies для фактических программ regular, bold, italic и bold-italic и именованных семейств

Существующий нативный декодер XHTML разрешает встроенные стили, границы абзацев, списки семейств, цвета, размеры, underline и strike; размер, насыщенность, начертание, гарнитура и цвет заливки шрифта скалярной подписи задают стиль по умолчанию

Отсутствующее запрошенное начертание или глиф проваливает подготовку; этот потребитель не подделывает appearance bold или italic и не ищет внешние шрифты

Измерение и размещение

Измерение и отрисовка подписи используют тот же нативный rich-layout и переданные программы шрифтов, включая фактические глифовые advance, подъём и спуск по стилю, общие базовые линии строк и перенос

Фиксированный резерв left или right ограничивает ширину текста; положительный резерв top или bottom разрешает перенос в пределах доступной ширины поля

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

Автоматические подписи left и right используют свою естественную ширину; встроенные подписи игнорируют явный reserve и при измерении, и при размещении

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

Поведение резерва следует определению резерва подписи XFA 3.3

Естественная высота включает финальный размер строки по метрикам шрифта плюс нативный двухпунктовый отступ с каждой стороны; неиспользованное замыкающее межстрочное расстояние после последней строки не учитывается

Скрытые и неактивные подписи не потребляют область; невидимые подписи резервируют измеренную область, но не рисуют и не учитывают глифы подписи

Один фактический appearance подписи разделяется между состояниями off, on и neutral одного виджета; повторяющиеся экземпляры удерживают независимые графы содержимого и стилей

Поля абзацев и собственный межстрочный интервал CSS, изображения в подписях и прочий нетекстовый payloads подписей, rich-подписи кнопок и последующая пересборка интерактивных appearance остаются отдельной работой потребителя

Транзакции и приёмка

Успешное нативное событие свойств можно сохранить и перезагрузить до автоматического создания PDF; сбой скрипта восстанавливает точные нативные байты XML, а сбои бюджета подготовки или отмены сохраняют байты, длину и позицию назначения

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

Tests/Linux/XFAHeadlessRichCaptionTests.pas создаёт фактические стилизованные, перенесённые, выбранные по семейству и невидимые PDF с подписями; XFAHeadlessRichCaptionRuntimeTests.pas покрывает повторные overlay, замену XML целиком и rollback

XFAHeadlessRichCaptionBudgetTests.pas упражняет реальные ресурсные сбои и выбранные границы отмены, а HeadlessTextExtentTests.pas раскрывает измеренные нативные размеры строк

Verify-XFAHeadlessRichCaptions.py инспектирует сохранённые графы PDF, точные байты переданных программ шрифтов, общие ссылки, Unicode-текст, сырые текстовые матрицы, метрики fontTools и отрисованные пиксели MuPDF, не открывая UI читалки

TextHeight только для чтения · Метаданные Boolean-колбэка · Boolean-маркеры и состояния