امضاهای گواهی و قفل‌های فیلد

HotPDF می‌تواند ساختارهای مجوز PDF پیوست‌شده به امضاهای گواهی و قفل‌های فیلد امضا‌شده را تألیف کند، و سپس همان ساختارها را در یک سند بارگذاری‌شده بازرسی کند

API تولیدکننده

procedure AddCertificationSignatureField(
  const FieldName: AnsiString;
  Rectangle: TRect;
  Permission: THPDFDocMDPPermission;
  ContentsBytes: Integer = 8192;
  const SubFilter: AnsiString = 'adbe.pkcs7.detached';
  const Reason: AnsiString = '';
  const Location: AnsiString = '';
  const ContactName: AnsiString = '';
  Flags: THPDFFormFieldFlags = []);

procedure ConfigureCertificationSignature(
  const FieldName: AnsiString;
  Permission: THPDFDocMDPPermission);

procedure AttachSignatureFieldLock(
  const FieldName: AnsiString;
  Action: THPDFFieldLockAction;
  const Fields: array of AnsiString);

AddCertificationSignatureField ایجاد جایگاه امضا را با پیکربندی گواهی ترکیب می‌کند

ConfigureCertificationSignature برای جایگاه امضاشده تولیدشده موجود است و نیازمند آن است که آن فیلد، اولین فیلدی باشد که دیکشنری امضا را حمل می‌کند

یک سند تنها می‌تواند یک امضای گواهی داشته باشد، بنابراین درخواست پیکربندی دوم پیش از تغییر گراف شیء رد می‌شود

این APIها به‌طور خودکار با خروجی PDF 1.5 سازگاری می‌کنند

سطوح مجوز DocMDP

مقدار مجوز گواهی
dmpNoChangesهیچ تغییری پس از گواهی مجاز نیست
dmpFormFillAndSignپر کردن فرم، نمونه‌سازی قالب و امضا مجاز است
dmpFormFillSignAndAnnotateتغییرات پیشین به‌علاوه ایجاد، حذف و تغییر حاشیه‌نویسی مجاز است

dmpNone برای نتایج بازرسی بدون تبدیل DocMDP رزرو شده و توسط روش‌های تولیدکننده رد می‌شود

دامنه‌های قفل فیلد

مقدار آرگومان فیلدها اثر پس از امضا
flaAllباید خالی باشدتمام فیلدهای فرم را قفل می‌کند
flaIncludeیک یا چند نام فیلد یکتافقط فیلدهای فهرست‌شده را قفل می‌کند
flaExcludeیک یا چند نام فیلد یکتاتمام فیلدها به‌جز فیلدهای فهرست‌شده را قفل می‌کند

AttachSignatureFieldLock نام‌های خالی، نام‌های تکراری، مقادیر کنش نامعتبر، شکل فیلدهای ناسازگار، فیلد هدف امضانشده، یا فیلدی که از پیش قفل یا سیاست FieldMDP را حمل می‌کند را رد می‌کند

ساختار تولیدشده

مثال Delphi

var
  LockedFields: THPDFAnsiStringArray;
begin
  HotPDF.CurrentPage.AddTextField(
    'InternalCode', '', Rect(40, 80, 220, 108));

  HotPDF.CurrentPage.AddCertificationSignatureField(
    'CertSig', Rect(40, 140, 260, 190),
    dmpFormFillAndSign, 8192,
    'adbe.pkcs7.detached', 'Document approval');

  SetLength(LockedFields, 1);
  LockedFields[0] := 'InternalCode';
  HotPDF.CurrentPage.AttachSignatureFieldLock(
    'CertSig', flaInclude, LockedFields);
end;

بازرسی بارگذاری‌شده

function GetLoadedSignaturePermissions(
  SigIndex: Integer;
  out Info: THPDFSignaturePermissionInfo): Boolean;

خواننده مجوز DocMDP، پیوند Catalog، دامنه SigFieldLock، دامنه FieldMDP، نام فیلدها، اعتبار ساختاری و رشته مسئله تشخیصی را گزارش می‌کند

اشکال مستقیم و غیرمستقیم موردنیاز را تأیید می‌کند و اطمینان حاصل می‌کند که Catalog /Perms /DocMDP به همان دیکشنری امضا اشاره دارد

اگر هم SigFieldLock و هم FieldMDP حاضر باشند، کنش‌ها و فهرست‌های فیلد آن‌ها باید توافق داشته باشند

خواننده بازرسی محدود دیکشنری و آرایه را انجام می‌دهد و JavaScript، کنش‌ها یا محتوای امضا را اجرا نمی‌کند

مرز اعتبارسنجی

GetLoadedSignaturePermissions تنها ساختار سیاست را گزارش می‌کند

VerifyLoadedSignature همچنان یکپارچگی رمزنگاری را جداگانه گزارش می‌کند

هیچ‌یک از روش‌ها ادعا نمی‌کنند که هر بازبینی افزایشی بعدی از مجوز DocMDP یا FieldMDP گزارش‌شده پیروی می‌کند، زیرا این نیازمند تحلیل تغییر معنایی بازبینی‌به‌بازبینی است

عملکرد

اعتبارسنجی تولیدکننده تنها فیلدهای AcroForm تألیف‌شده و آرایه کوچک ارجاعات امضا را پویش می‌کند، در حالی که بازرسی بارگذاری‌شده فقط امضای انتخاب‌شده، قفل آن، ارجاعات آن و ورودی مجوز Catalog را می‌خواند

هیچ محتوای صفحه، جریان تصویر، برنامه قلم یا شیء غیرمستقیم نامرتبط رمزگشایی نمی‌شود

همچنین ببینید