أضف FPdfFormMerge لاستخدام MergePdfFilesWithForms أو TPdfFormMergeHelper.MergeFilesWithForms
يجهز المساعد استيراد الصفحات المختارة ونسخ الحقول، ويحذف widgets المستوردة اليتيمة، ثم يعيد فتح النتيجة المحفوظة بصورة مستقلة قبل استبدال مستند المستدعي؛ يحافظ الخطأ والإلغاء على الوجهة
يرفض pagcpReject اسم الحقل الكامل المكرر، ويضيف pagcpRename بادئة ولاحقة حتميتين دون تعارض، بينما ينشئ pagcpNamespace حقلًا أبًا حقيقيًا لعزل كل مصدر
يجمع pagcpMergeCompatible حقول النص أو الاختيار النهائية المتوافقة لتشارك widgets قيمة واحدة؛ يشترط تطابق الأعلام والقيم والافتراضات والخيارات ودلالات الخط المكتفية بذاتها، ويرفض إجراءات الحقول والنص الغني والأنواع غير المتوافقة
تحذف تصفية الصفحات widgets والحقول غير المستخدمة وتحافظ على ترتيب الحساب بعد تصفيته وإزالة تكراره؛ تُعزل الموارد الافتراضية وتُعاد كتابة أسماء المظهر الافتراضي، بينما تحتفظ تدفقات المظهر المنسوخة بمواردها
تُطبع الكائنات التي تجمع الحقل و widget قبل دمج الحقول المتوافقة؛ تبقى الأسماء المستقلة قابلة للتحرير بشكل مستقل بعد الحفظ وإعادة الفتح
InsertAt فهرس إدراج يبدأ من الصفر؛ تضيف -1 الصفحات في النهاية؛ الحدود الافتراضية 10,000 صفحة إجمالًا و 256 MiB لكل مستند، مع 100,000 كائن منسوخ وعمق 128
السقوف الثابتة 1,000,000 كائن وعمق 256 و 4,096 حقلًا جذريًا؛ تُرفض الصفحات المختارة المتكررة ومصادر ووجهات XFA أو الموقعة والوجهات المشفرة
يمكن لكلمة مرور المصدر فك تشفيره أثناء تجهيز الدمج؛ النتيجة غير مشفرة، لذا طبّق التشفير صراحة بعد ذلك إن لزم
يحتفظ overload القديم لـ GraftPdfAcroForm بسياسة الرفض؛ يعرض overload الذي يقبل TPdfAcroFormGraftOptions السياسات نفسها للتعارض والموارد على مستوى التدفقات
لا يحافظ مساعد النماذج هذا على الإشارات المرجعية أو الوجهات المسماة للمصدر؛ استخدم مساعد التنقل لمسار العمل الذي يعلنه
Options := TPdfFormMergeOptions.Default; Options.GraftOptions.CollisionPolicy := pagcpNamespace; if not MergePdfFilesWithForms(Pdf, Sources, Options, Report) then raise EPdfError.Create(Report.ErrorMessage);
type
TPdfFormMergeOptions= record
GraftOptions: TPdfAcroFormGraftOptions;
InsertAt: Integer;
MaxPages: Integer;
MaxDocumentBytes: Int64;
CancellationToken: IPdfCancellationToken;
class function Default: TPdfFormMergeOptions; static;
end;
TPdfFormMergeReport= record
Succeeded, Cancelled: Boolean;
ImportedSourceCount, ImportedPageCount: Integer;
GraftedFieldCount, RenamedFieldCount, MergedFieldCount: Integer;
FilteredFieldCount, FilteredWidgetCount, ResourceRenameCount: Integer;
ErrorMessage: string;
end;
function MergePdfFilesWithForms(Destination: TPdf;
const Sources: TPdfBatchMergeSources; const Options: TPdfFormMergeOptions;
out Report: TPdfFormMergeReport): Boolean;
type
TPdfFormMergeHelper= class helper for TPdf
function MergeFilesWithForms(const Sources: TPdfBatchMergeSources;
const Options: TPdfFormMergeOptions;
out Report: TPdfFormMergeReport): Boolean;
end;