Fügen Sie FPdfFormMerge hinzu, um MergePdfFilesWithForms oder TPdfFormMergeHelper.MergeFilesWithForms zu verwenden
Der Helper bereitet ausgewählte Seitenimporte und Feldübernahmen vor, entfernt verwaiste importierte Widgets und öffnet das gespeicherte Ergebnis unabhängig erneut, bevor er das Dokument des Aufrufers ersetzt; Fehler und Abbruch erhalten das Ziel
pagcpReject lehnt doppelte vollständig qualifizierte Feldnamen ab, pagcpRename ergänzt deterministische kollisionsfreie Präfixe und Suffixe, und pagcpNamespace fügt ein echtes übergeordnetes Feld zur Trennung der Quellen ein
pagcpMergeCompatible verbindet kompatible terminale Text- oder Auswahlfelder, sodass ihre Widgets einen Wert teilen; Flags, Werte, Standardwerte, Optionen und eigenständige Schriftsemantik müssen übereinstimmen; Feldaktionen, Rich Text und inkompatible Feldtypen werden abgelehnt
Die Seitenauswahl entfernt ungenutzte Widgets und Felder und erhält die gefilterte, deduplizierte Berechnungsreihenfolge; Standardressourcen werden isoliert und Namen in Standarddarstellungen umgeschrieben, geklonte Darstellungsstreams behalten ihre eigenen Ressourcen
Kombinierte Feld-/Widgetobjekte werden vor der Verbindung kompatibler Felder normalisiert; unabhängige Namen bleiben nach Speichern und Wiederöffnen getrennt bearbeitbar
InsertAt ist ein nullbasierter Einfügeindex; -1 hängt Seiten an; Standardlimits sind insgesamt 10,000 Seiten und 256 MiB pro Dokument, mit 100,000 übernommenen Objekten und Tiefe 128
Feste Übernahmelimits sind 1,000,000 Objekte, Tiefe 256 und 4,096 Wurzelfelder; wiederholt ausgewählte Seiten, XFA- oder signierte Quellen und Ziele sowie verschlüsselte Ziele werden abgelehnt
Quellpasswörter können eine Quelle für die vorbereitete Zusammenführung entschlüsseln; das Ergebnis ist unverschlüsselt, wenden Sie bei Bedarf anschließend explizit eine Verschlüsselung an
Die bisherige Überladung von GraftPdfAcroForm behält die Ablehnungspolitik; die Überladung mit TPdfAcroFormGraftOptions stellt dieselben Kollisions- und Ressourcenregeln auf Streamebene bereit
Dieser Formular-Helper erhält keine Quelllesezeichen oder benannten Ziele; verwenden Sie dafür den vorgesehenen Navigations-Helper
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;