Нативные декорации аннотаций
HPDFRenderHeadlessPagePNG генерирует рельефные рамки и подписи линий для отсутствующих appearance через свой обычный ограниченный рендерер аннотационных Forms
Явно заданный normal appearance имеет приоритет над сгенерированными декорациями
Прямоугольные рельефные рамки
Рамки Square, Link, FreeText и Stamp поддерживают стили BS B и I с противоположными затенёнными полосами; для вдавленного вида направление света меняется на обратное
Для каждого компонента цвета рамки c светлая полоса использует 1 − (1 − c) × 0.35, а тёмная — c × 0.5
Ширина полосы ограничивается половиной меньшего измерения рамки; разности прямоугольника, нулевая ширина, пустые цвета и отдельные прозрачности CA/ca остаются в силе
Неизвестные именованные стили BS используют стандартное сплошное значение по умолчанию; стиль неверного типа остаётся некорректной записью словаря
Раскладка подписи линии
Cap включает подпись из Contents или XHTML RC со стилизацией DS; CP выбирает размещение Inline или Top, а CO задаёт смещения вдоль направления исходной конечной точки и его левой нормали
Inline-подписи оставляют измеренный зазор в самой линии; Top-подписи и подписи шире линии размещаются над линией
Обратное направление конечных точек сохраняет прямой текст, при этом окончания стрелок и выносные линии сохраняют свою независимую геометрию
Плоский вариант по умолчанию — детерминированное имя ресурса Helvetica на 12 пунктов с цветом аннотации, разрешаемое через существующие ресурсы шрифтов документа и страницы
Unicode, стилизация rich text и явные разрывы абзацев используют существующий построитель read-only текстовых appearance; пустой текст оставляет обычную линию нетронутой
Отсечение, время жизни и лимиты
Размещение подписи использует измеренные размеры временной Form и сохраняет её клипы BBox и прямоугольника аннотации
Внутренний клип padding построителя полей убирается только в этой сгенерированной раскладке подписи; обычные PDF-операторы W и W* не меняются
Сгенерированные текстовые ресурсы разделяют неизменяемые байты TrueType-программ в пределах одной аннотации, с независимыми позициями потоков и очисткой после освобождения всех временных представлений ресурсов
Декодированные байты, рабочая память, токены, операции, размер вывода и отмена остаются ограниченными, включая длинные многоязычные подписи и восстановление после неудачного рендера
Приёмка и оставшаяся работа
Не-GUI раннеры в Tests/Linux/HeadlessAnnotationDecorations.en-us.md сравнивают спутники обычной геометрии содержимого страницы в двух масштабах в режимах просмотра и печати, сохраняя раздельные наблюдения MuPDF и Poppler
Фикстуры покрывают прозрачность, transparency, опциональную видимость, зашифрованные документы, короткий и длинный Unicode, границы подписи, сохранение исходного графа и восстановление после отмены
Облачные контуры, shaping шрифтов CFF или Type1 по умолчанию, дополнительные DA-операторы FreeText и независимо отслеживаемая общая проблема дробного клипа глифов остаются отдельной работой
См. аннотационный fallback для более широкого набора поддерживаемой геометрии и форматов