Нативный фолбэк аннотаций

HPDFRenderHeadlessPagePNG строит временные appearances для поддерживаемых аннотаций без нормального appearance

Существующие нормальные appearances имеют приоритет; активные повреждённые appearances по-прежнему явно ломают операцию

Исходный документ остаётся неизменным: сгенерированные потоки и шрифты принадлежат операции отрисовки и освобождаются после использования

Геометрия и статическое содержимое

Фолбэк покрывает границы Link, Square, Circle, Line, Polygon, PolyLine, Ink, Highlight, Underline, StrikeOut, Squiggly, FreeText, Text, Caret, Stamp, FileAttachment, Sound и предпросмотрные контуры Redact

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

Popup, Projection и Screen не имеют самостоятельного отрисовываемого содержимого без нормального appearance; активируемые 3D-среды, звук, вложения и действия ссылок вне статической растеризации

Проверки видимости и optional-content выполняются до построения фолбэка; временные appearances сохраняют отсечение страницы и существующие геометрические правила view/print, NoZoom и NoRotate

Подписи линий и рельефные границы

Подписи линий обрабатывают Cap, CP, CO, Contents, RC и DS через тот же временный Unicode-путь текстовой Form, с измеренными промежутками Inline, размещением Top и смещениями относительно конечных точек

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

Границы подписи удерживают и временную BBox Form, и прямоугольник аннотации; обычное отсечение содержимого страницы не меняется

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

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

Политику цветов, время жизни шрифтов и независимое покрытие приёмки см. в украшениях аннотаций

FreeText

Обычный текст поддерживает PDFDocEncoding, UTF-16 и UTF-8 с BOM-префиксом; XHTML rich-текст поддерживает унаследованную стилизацию по умолчанию и RC-записи в текстовых потоках

Поддерживаемые операторы default-appearance — Tf, g, rg, k, Tc и Tw; нулевой размер шрифта Tf запрашивает автоматическую подгонку

Встроенные TrueType-шрифты default используют байты шрифта документа; поддерживаемые стандартные шрифты и rich-семейства используют локальный платформенный резолвер

Временные текстовые appearances используют явный сборщик read-only семейств, включая TrueType-контурные шрифты только для Preview/Print; полные байты шрифта и флаги прав сохраняются, а существующие сборщики редактирования сохраняют свой исходный допуск

Имена шрифтов DA разрешаются через Catalog AcroForm.DR.Font до ресурсов страницы; ресурсы страницы и распознанные стандартные псевдонимы — пути восстановления при отсутствии привязки по умолчанию

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

Границы и незавершённые обработчики

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

Screen без appearance не имеет умолчательного статического изображения или границы; переданный нормальный appearance сохраняет приоритет в обоих режимах view и print

Отсутствующие appearances необязательны в PDF 1.2–1.7; PDF 2.0 требует appearances, кроме заявленных исключений, поэтому Path-фикстуры с отсутствующим appearance проверяют восстановление, а не запись по PDF 2.0

Облачные границы, встроенные CFF-шрифты default, дополнительные операторы default-appearance FreeText и прочие стандартные фолбэк-обработчики остаются незавершёнными

Фолбэк Redact показывает предпросмотрный контур и не удаляет и не замазывает содержимое страницы

Статические стили значков и раскладка текста могут различаться между процессорами; независимые формулы и отдельные наблюдения MuPDF/Poppler сохранены в Tests/Linux/HeadlessAnnotationFallback.en-us.md

Контекст рендерера и формата см. в нативной отрисовке Cairo и опечатках ISO 32000-2 об аннотациях