TPDFlibSigner
Security and Signatures
الوصف
TPDFlibSigner هو محرك التوقيع المستقل الذي يقرن هدف TPDFlibSignDoc بهوية TPDFlibPFXFile ويكتب التوقيع المكتمل كإصدار تزايدي جديد
افتح PDF من ملف أو تدفق أو سلسلة، واربط الهوية بإحدى دوال الفتح، واختر الحقل الهدف، واضبط التوقيع، ثم أنهِ بـ AppendToFile أو AppendToStream أو ApplySignature
تغطي الفئة حزمة ميزات التوقيع كاملة: اختيار الخلاصة، وحجز المحتوى وتقديره، ومعلومات الإبطال، وأنواع الالتزام، وسياسات التوقيع، والإثباتات القانونية، ومستويات مصادقة DocMDP، وأقفال الحقول، وأختام وقت المستند، وتوقيعات مرور (passthrough) بطول ثابت
تعرض الواجهة الرابطة الخط نفسه عبر دوال SignProcess الموثقة؛ استخدم هذه الفئة مباشرة عندما يلزم تضمين مسار التوقيع في كاتب إصدارات مخصص أكبر
الصيغة
Delphi
TPDFlibSigner = Class
Public
Constructor Create;
Destructor Destroy; Override;
Function OpenPDF(Const FileName: WideString; Const Password: WideString): TPDFlibSignerResult;
Function OpenPDFStream(SourceStream: TStream; Const Password: WideString): TPDFlibSignerResult;
Function OpenPDFString(Const SourceString: AnsiString; Const Password: WideString): TPDFlibSignerResult;
Function OpenPFX(Const FileName: WideString; Const Password: AnsiString; UseMachineKeyset: Boolean): TPDFlibSignerResult;
Function OpenCertStore(Const StoreName, CertName: WideString; UseMachineStore: Boolean): TPDFlibSignerResult;
Function OpenCertContext(CertContext: Pointer): TPDFlibSignerResult;
Function OpenEd25519(Const CertificateDER, PrivateKeyDER: AnsiString): TPDFlibSignerResult;
Function OpenEd25519FromFile(Const CertificateFile, PrivateKeyFile: WideString): TPDFlibSignerResult;
Function OpenCNGKey(Const CertificateDER: AnsiString;
Const ProviderName, KeyName: WideString; UseMachineKey, AllowUI: Boolean): TPDFlibSignerResult;
Function OpenCNGKeyHandle(Const CertificateDER: AnsiString; KeyHandle: TPLIntPtr; AllowUI: Boolean): TPDFlibSignerResult;
Function OpenExternalDigestSigner(Const CertificateDER: AnsiString;
Signer: TPDFlibExternalDigestSignEvent; Sender: TObject;
SignProcessID, SignatureAlgorithm, SignatureReserveBytes: Integer): TPDFlibSignerResult;
Procedure SetPrivateKeyUI(AllowUI: Boolean);
Procedure SetRSAPSSPadding(Enable: Boolean);
Procedure SetLegalAttestation(Const Value: WideString);
Procedure SelectField(Const FieldName: WideString; FieldPage: Integer);
Procedure SetSignatureProperty(SignatureProperty: TPDFlibSignatureProperty; Const NewValue: AnsiString);
Procedure SetAppearanceText(Const Text: WideString; FontSize, FontRed, FontGreen, FontBlue: Double);
Procedure SetSignatureBounds(Left, Top, Width, Height: Double);
Procedure SetPassthrough(SignatureLength: Integer);
Procedure SetDocTimeStamp(SignatureLength: Integer);
Procedure SetDigestAlgorithm(Algorithm: TPDFlibDigestAlgorithm);
Procedure SetContentsReserveBytes(ExtraBytes: Integer);
Procedure SetContentsEstimate(ChainBytes, CRLBytes, OCSPBytes, TimeStampBytes, SafetyMarginPercent: Integer);
Procedure SetRevocationInfo(Const RevocationInfoDER: AnsiString);
Procedure SetCommitmentType(CommitmentType: Integer);
Procedure SetDocMDP(Level: Integer);
Function SetFieldLock(Const Action: AnsiString; Const Fields: TArray): Boolean;
Procedure SetSignaturePolicy(Const PolicyOID: AnsiString; Const PolicyHashBytes: AnsiString; HashAlgorithm: TPDFlibDigestAlgorithm);
Function AppendToFile(Const FileName: WideString): Boolean;
Function AppendToStream(TargetStream: TStream): Boolean;
Function ApplySignature: Boolean;
Function GetByteRange(Index: Integer): Int64;
Function GetEstimatedContentsBytes: Integer;
Procedure SetInPlace;
Property IsDocTimeStamp: Boolean Read FIsDocTimeStamp;
End; الطرق
| OpenPDF, OpenPDFStream, OpenPDFString | تفتح المستند المطلوب توقيعه من ملف أو تدفق أو سلسلة ANSI |
|---|---|
| OpenPFX, OpenCertStore, OpenCertContext | تربط ملف PFX أو شهادة من مخزن النظام باسمها الظاهر أو سياق شهادة خارجيًا |
| OpenEd25519, OpenEd25519FromFile | تربط زوج مفاتيح Ed25519 من الذاكرة أو من ملفات |
| OpenCNGKey, OpenCNGKeyHandle | تربط مفتاح CNG بالموفر واسم المفتاح، أو بمقبض المفتاح |
| OpenExternalDigestSigner | تفوّض توقيع الخلاصة إلى نداء خارجي |
| SelectField | تختار حقل التوقيع بالاسم المؤهل الكامل والصفحة |
| SetSignatureProperty | تضبط إحدى قيم spReason وspLocation وspContactInfo وspFieldImage وspSubFilter وspFieldImageOptions |
| SetAppearanceText | تخزن كتلة النص المرئية المولدة تلقائيًا التي تُكتب في مظهر الحقل وقت الإلحاق |
| SetSignatureBounds | تضع الحقل بإحداثيات صريحة |
| SetPassthrough | تُنتج توقيع مرور بطول مطابق تمامًا للمعطى للتوقيع الخارجي |
| SetDocTimeStamp | تحوّل التوقيع إلى ختم وقت للمستند |
| SetDigestAlgorithm | تختار الخلاصة المستخدمة للتوقيع |
| SetContentsReserveBytes, SetContentsEstimate | تحجز بايتات إضافية أو تحسب الحجز من تقديرات السلسلة وCRL وOCSP والختم الزمني مع هامش أمان |
| SetRevocationInfo | تضمّن بيانات إبطال مجمّعة مسبقًا بصيغة DER |
| SetCommitmentType, SetSignaturePolicy, SetLegalAttestation | تعلن نية التوقيع والسياسة والإثبات القانوني |
| SetDocMDP | تُفعّل توقيع مصادق عند مستوى DocMDP من 1 أو 2 أو 3؛ ويجب استدعاؤها قبل SelectField |
| SetFieldLock | تكتب قاموس قفل حقل بإجراء وقائمة أسماء حقول |
| AppendToFile, AppendToStream | تكتب الإصدار الموقّع في ملف أو تدفق جديد |
| ApplySignature | تطبّق التوقيع على المستند في مكانه |
| GetByteRange, GetEstimatedContentsBytes | تقرأ مدخل ByteRange وحجم المحتويات المقدر بعد بناء الإصدار |
| SetInPlace | تعلّم الإصدار كتحديث في مكان للمستند المفتوح |
المعاملات
| IsDocTimeStamp | True عندما ينتج الواقِع ختم وقت للمستند |
|---|
ملاحظات
تُعيد كل دالة فتح قيمة TPDFlibSignerResult
تُساق مستويات DocMDP إلى قيمة التحويل P في ISO 32000: 1 بلا تغييرات، 2 تعبئة نماذج، 3 تعليقات؛ وعندما تكون غير صفريّة يضُبط بت AppendOnly في /SigFlags داخل AcroForm ليفرض العارضون المصادقة
انظر أيضًا
TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP