تواقيع الشهادة وأقفال الحقول

يستطيع HotPDF تأليف هياكل أذونات PDF المرفقة بتواقيع الشهادة وأقفال الحقول الموقّعة، ثم فحص الهياكل ذاتها في مستند محمّل

واجهة برمجة المنتِج

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 مخصصاً لعنصر نائب موقّع مُؤلَّف موجود ويتطلب أن يكون هذا الحقل هو أول حقل يحمل قاموس توقيع

لا يمكن أن يحتوي المستند على أكثر من توقيع شهادة واحد، لذا يُرفض طلب الإعداد الثاني قبل تغيير مخطط الكائنات

تتفاوض هذه الواجهات تلقائياً مع مُخرجات 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 فقط

لا تُفكّ ترميز أي محتويات صفحة أو تدفق صورة أو برنامج خط أو كائن غير مباشر غير مرتبط

انظر أيضاً