Профили 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