Профили appearance подписи в Windows

Операция подписания Windows может сгенерировать видимую Unicode-внешность подписи из именованного встроенного пресета и явно переданного встраиваемого шрифта TrueType

{"schemaVersion":1,"type":"sign","incremental":true,
 "existingField":true,"fieldName":"ApprovalOne",
 "pfxFile":"C:/keys/signer.pfx","pfxPassword":"password",
 "appearance":{"profileName":"HotPDF.StandardApproval",
   "text":"Signed by Alice","fontFile":"C:/fonts/DejaVuSans.ttf"}}

Фактический выбор пресета

profileNameСгенерированная конфигурация
HotPDF.StandardApprovalПо центру синий текст 11 pt, отступ 4 pt, прямоугольная граница, белый фон и одна строка текста
HotPDF.StandardCertificationПо левому краю чёрный текст 10 pt, отступ 5 pt, прямоугольная граница, белый фон, многострочный перенос и межстрочный интервал 1.35
HotPDF.CompactПо правому краю чёрный текст 8 pt, отступ 1 pt, без закрашенного фона и границы, одна строка текста

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

text поставляет фактическую подпись, а fontFile — её программу TrueType; оба обязательны и являются непустыми строками Unicode, а все три строки appearance ограничены 16 384 байтами UTF-8 без NUL

Права встраивания шрифта, валидность Unicode, доступные глифы, требования сложного шейпинга, вписывание подписи и сконфигурированные лимиты соблюдаются при генерации

Виджеты и подписанные документы

Генерация обновляет normal Form XObject в /AP для каждого Widget, принадлежащего выбранному полю подписи, включая слитые поля и поля с отдельными дочерними Widget

Каждый Widget поставляет собственные положительные размеры прямоугольника и необязательный поворот MK/R на 0, 90, 180 или 270 градусов; выравнивание пресета имеет приоритет над унаследованными подсказками выравнивания

Appearance rollover и down сохраняются, когда существующий словарь AP присутствует; некорректная геометрия, словари appearance, повороты или циклические иерархии Widget отклоняют генерацию

Операция подписания поддерживает существующие поля, новые поля, инкрементальные зашифрованные обновления, подписание неподписанного документа, первые сертификационные подписи и последующие подписи утверждения, разрешённые политиками P2 или P3 и блокировок полей

Фактическое сертификационное поведение выбирается через certificationPermission; выбор одного лишь appearance StandardCertification документ не сертифицирует

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

Требования seed и лимиты

Обязательный SV AppearanceFilter совпадает только с пресетом, фактически сгенерированным в этой операции подписания; существующие метаданные или ранее сохранённый appearance сами по себе это требование не удовлетворяют

Словарь AP записывает HotPDFProfile для инспекции, а успешный результат сообщает appearanceProfile; оба описывают пресет, использованный этой операцией

Байты шрифта ограничены меньшим из 8 МиБ и одной восьмой memoryBytes, байты сгенерированного appearance делят лимит в одну восьмую memoryBytes, а каждый Widget добавляет семь ограниченных объектов в рамках objectCount

Отмена, недопустимые пресеты, невыполненные обязательные seed и недопустимая генерация сохраняют исходный дескриптор документа и не публикуют байтов PDF; output-колбэки сохраняют существующую семантику сбоев колбэков

Комбинируйте appearance с фактическими метками времени подписания, сертификацией и юридическим заверением или аутентифицированной подписанной информацией об отзыве

Жизненный цикл операции, права, бюджеты и контракт публикации описаны в Задания инкрементального подписания PFX