function PreparePadesRemoteSignature(Prepared: TStream; const Options: TPadesRemoteSignOptions; out Request: TPadesRemoteSigningRequest): Boolean;
سند فعال را ذخیره میکند، یک Widget امضای نامرئی و فیلد AcroForm الحاق میکند، یک slot با عرض ثابت برای /Contents رزرو میکند، xref افزایشی و trailer را نهایی میکند و digest جداشدهٔ دقیق SHA-256 را محاسبه میکند
Options.FieldOptions میتواند مقادیر seed الزامی، دلایل مجاز و تصدیقهای حقوقی، گواهیهای امضاکنندهٔ پذیرفتنی، قفلهای فیلد و پارامترهای تبدیل approval یا certification را تدوین کند
درخواست بازگشتی، digest و ByteRange را به اثر انگشت کامل PDF آمادهشده مقید میکند تا گردش کار بتواند پس از عبور از مرز فرایند، ماشین یا شبکه از سر گرفته شود
| Prepared | جریان مقصد برای PDF جاینگهدار تغییرناپذیری که همراه درخواست امضای راه دور ارسال میشود |
| Options | فرادادهٔ دیکشنری امضا، ظرفیت بایتی رزروشدهٔ CMS و قیدهای اختیاری فیلد |
| Request | فرادادهٔ ماندگار digest، اثر انگشت، ByteRange، آفست و ظرفیت |
Active برابر True باشدAcceptableCertificates را فراهم کند، چون گواهی امضاکنندهٔ راه دور هنوز در دسترس نیستCertificationPermission مقدارهای 1، 2 یا 3 را میپذیرد، هم DocMDP و هم /Perms کاتالوگ را مینویسد و سندهایی را که از قبل امضای گواهیبخش دارند رد میکندLockAction هم دیکشنری /Lock فیلد و هم تبدیل امضای FieldMDP متناظر را مینویسدContentsSize به حداقل 1024 بایت محدود و تا 64 MiB سقفگذاری میشودmessage-digest آن برابر Request.DocumentDigest باشدPrepared را بدون تغییر ماندگار کنید و Request را از طریق SavePadesRemoteSigningRequest سریسازی کنید
var
Prepared, RequestData: TMemoryStream;
Options: TPadesRemoteSignOptions;
Request: TPadesRemoteSigningRequest;
begin
Options := TPadesRemoteSignOptions.Default;
Prepared := TMemoryStream.Create;
RequestData := TMemoryStream.Create;
try
if Pdf1.PreparePadesRemoteSignature(Prepared, Options, Request) then
TPdf.SavePadesRemoteSigningRequest(RequestData, Request);
finally
RequestData.Free;
Prepared.Free;
end;
end;