PDFium Delphi Component Docs

Transaktionale AcroForm-Zusammenführung

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);

Öffentliche Deklarationen

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;