THotPDF.AnalyzeLoadedSignatureRevisions Method
Классифицирует каждую инкрементную редакцию после выбранной подписи и оценивает совокупные изменения относительно DocMDP и FieldMDP
Объявления
function AnalyzeLoadedSignatureRevisions(
SigIndex: Integer;
Source: TStream;
out Analysis: THPDFSignatureRevisionAnalysis
): boolean; overload;
function AnalyzeLoadedSignatureRevisions(
SigIndex: Integer;
out Analysis: THPDFSignatureRevisionAnalysis
): boolean; overload;
Модуль
HPDFDoc
Параметры
| Имя | Назначение |
|---|---|
SigIndex | Отсчитываемый от нуля индекс поля загруженной подписи |
Source | Принадлежащий вызывающему коду поток, содержащий точные байты загруженного PDF |
Analysis | Принимает сведения о редакциях, объектах, полях, разрешениях, соответствии и диагностике |
Возвращаемое значение
THPDFRevisionChangeKinds независимо фиксирует обслуживание LTV, заполнение форм, подписание, создание/удаление/изменение аннотаций, создание/удаление/изменение embedded file, инстанцирование шаблонов страниц и неопознанные изменения
Набор kind сохраняет детали операций, которые единственный упорядоченный уровень изменения выразить не может, и управляет сопоставлением прав UR/UR3
Возвращаемое значение
Возвращает True, если байтовый диапазон подписи и цепочка редакций были проанализированы, в противном случае возвращает False и сообщает причину в Analysis.Issue
Уровни изменений
THPDFRevisionModificationLevel упорядочивает семантические изменения от наименее к наиболее ограничительным
| Значение | Смысл |
|---|---|
rmlNone | Изменения объектов после подписи отсутствуют |
rmlLongTermValidation | Обслуживание DSS, VRI, сертификатов, отзыва, расширений или меток времени документа |
rmlFormFillAndSign | Значения форм, внешние виды виджетов или структуры подписей |
rmlAnnotations | Объекты-аннотации или привязка аннотаций к страницам |
rmlOther | Нераспознанные, нечитаемые, освобождённые или иным образом недопустимые объекты |
Сведения о результате
THPDFSignatureRevisionAnalysis содержит массив THPDFSignatureRevisionChangeArray записей THPDFSignatureRevisionChange
SignedRevisionLength,TotalRevisionCount, иSignedRevisionIndexидентифицируют подписанный снимок в хронологической цепочке ревизийRevisionsсообщает каждое последующее смещение xref, семантический уровень, набор kind изменений, изменённые и освобождённые номера объектов, изменённые имена полей и любые вопросы консервативной классификацииPermissionsсодержит полную информацию transform, восстановленную из точной подписанной ревизии, а не потенциально переопределённую политику из последнего графа объектовDocMDPCompliant,FieldMDPCompliant,URCompliant, иIdentityCompliantсообщают независимые решения, аTransformCompliantобъединяет все методы transform со структурной валидностьюPolicyCompliantостаётся итоговым fail-closed результатом для вызывающих, которым нужно одно решение
Примечания по использованию
- Перегрузка с файловой основой открывает файл-источник, использованный
LoadFromFile; используйте stream-перегрузку послеLoadFromStream - Позиция stream восстанавливается до возврата из метода
- Традиционные таблицы xref, xref stream, гибридные ссылки, инкрементальные
/Prev-цепочки и члены сжатых object stream поддерживаются - UR3 участвует через свой обязательный диапазон байтов; устаревшие legacy-подписи UR не имеют границы подписанной ревизии, поэтому метод сообщает неверный или отсутствующий
/ByteRangeвместо попытки устаревшего алгоритма object digest - Освобождённые аннотации и embedded files сохраняют семантику удаления из прежних тел объектов, тогда как неизвестные или нечитаемые объекты остаются
rmlOther, поэтому проверки политик безопасно проваливаются - Этот метод оценивает семантику ревизий и права, но не заменяет криптографическую верификацию подписи
- SaveIncrementalUpdateAuthenticated совмещает этот анализ с аутентификацией подписи и атомарной публикацией