Метод THotPDF.AnalyzeLoadedSignatureRevisions
Класифікує кожну інкрементальну редакцію після обраного підпису та оцінює сукупні зміни проти 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 незалежно записує супровід довгострокової валідації, заповнення форм, підписання, створення/видалення/зміну анотацій, створення/видалення/зміну вбудованих файлів, створення екземплярів шаблонів сторінок і нерозпізнані зміни
Набір видів зберігає деталі операцій, які один упорядкований рівень модифікації висловити не може, і керує зіставленням прав UR/UR3
Повернене значення
Повертає True, коли діапазон байтів підпису та ланцюг редакцій було проаналізовано, інакше повертає False та повідомляє причину у Analysis.Issue
Рівні модифікації
THPDFRevisionModificationLevel впорядковує семантичні зміни від найменш до найбільш обмежувальних
| Значення | Призначення |
|---|---|
rmlNone | Без змін об'єктів після підпису |
rmlLongTermValidation | Обслуговування DSS, VRI, сертифікатів, відкликання, розширень або часових позначок документа |
rmlFormFillAndSign | Значення форми, вигляди віджетів або структури підписів |
rmlAnnotations | Об'єкти анотацій або прив'язка анотацій сторінки |
rmlOther | Нерозпізнані, непрочитані, звільнені або іншим чином недозволені об'єкти |
Деталі результату
THPDFSignatureRevisionAnalysis містить THPDFSignatureRevisionChangeArray записів THPDFSignatureRevisionChange
SignedRevisionLength,TotalRevisionCountтаSignedRevisionIndexідентифікують підписаний знімок у хронологічному ланцюгу редакційRevisionsповідомляє кожне пізніше зміщення xref, семантичний рівень, змінені та звільнені номери об'єктів, змінені імена полів і будь-яку проблему консервативної класифікаціїPermissionsмістить повну інформацію про перетворення, реконструйовану з точної підписаної ревізії, а не з потенційно перевизначеної політики в найновішому графі об'єктівDocMDPCompliant,FieldMDPCompliant,URCompliantіIdentityCompliantповідомляють незалежні рішення, тоді якTransformCompliantпоєднує всі методи перетворення зі структурною дійсністюPolicyCompliantзалишається остаточним результатом fail-closed для викликачів, яким потрібне одне рішення
Примітки щодо використання
- Перевантаження з файловим резервом відкриває вихідний файл, використаний
LoadFromFile; використовуйте потокове перевантаження післяLoadFromStream - Позиція потоку відновлюється до повернення методу
- Підтримуються традиційні таблиці xref, потоки xref, гібридні посилання, інкрементальні ланцюги
/Prevта стиснені члени об'єктних потоків - UR3 бере участь через свій обов'язковий байт-діапазон; застарілі підписи legacy UR не мають підписаної межі ревізії, тому цей метод повідомляє недійсний або відсутній
/ByteRange, замість того щоб застосовувати застарілий алгоритм дайджесту об'єктів - Звільнені анотації та вбудовані файли зберігають семантику видалення з попередніх тіл своїх об'єктів, тоді як невідомі чи непрочитані об'єкти залишаються
rmlOther, тож перевірки політики зазнають безпечної невдачі - Цей метод оцінює семантику редакцій та дозволи, але не замінює криптографічну перевірку підпису
- SaveIncrementalUpdateAuthenticated поєднує цей аналіз з автентифікацією підпису та атомарною публікацією