PDFium Delphi Component Docs

Unione transazionale di AcroForm

Aggiungere FPdfFormMerge per abilitare MergePdfFilesWithForms o TPdfFormMergeHelper.MergeFilesWithForms

L'helper prepara importazione delle pagine selezionate e innesto dei campi, elimina i widget importati rimasti orfani e riapre indipendentemente il risultato salvato prima di sostituire il documento del chiamante; errori e annullamento mantengono la destinazione

pagcpReject rifiuta nomi di campo completi duplicati, pagcpRename aggiunge prefisso e suffisso deterministici senza collisioni e pagcpNamespace inserisce un vero campo padre per isolare ogni sorgente

pagcpMergeCompatible unisce campi terminali di testo o scelta compatibili, affinché i widget condividano un valore; richiede flag, valori, valori predefiniti, opzioni e semantica dei font autonoma identici e rifiuta azioni dei campi, rich text e tipi incompatibili

Il filtro delle pagine selezionate elimina widget e campi inutilizzati e mantiene l'ordine di calcolo filtrato e senza duplicati; le risorse predefinite sono isolate e i nomi nell'aspetto predefinito riscritti, mentre gli stream di aspetto clonati conservano le proprie risorse

I campi combinati con widget vengono normalizzati prima di unire campi compatibili; i nomi indipendenti restano modificabili separatamente dopo salvataggio e riapertura

InsertAt è un indice di inserimento a base zero; -1 aggiunge in coda. I limiti predefiniti sono 10,000 pagine totali e 256 MiB per documento, con limiti di innesto di 100,000 oggetti e profondità 128

I limiti rigidi di innesto sono 1,000,000 oggetti, profondità 256 e 4,096 campi radice; vengono rifiutati pagine selezionate ripetute, sorgenti o destinazioni XFA, sorgenti o destinazioni firmate e destinazioni cifrate

Le password sorgente possono decifrare un documento per l'unione preparata; il risultato non è cifrato, quindi applicare poi un flusso di cifratura esplicito se necessario

L'overload storico di GraftPdfAcroForm mantiene la politica di rifiuto; l'overload con TPdfAcroFormGraftOptions espone le stesse politiche di collisione e risorse a livello di stream

Questo helper dei form non mantiene outline o destinazioni nominate delle sorgenti; usare l'helper di navigazione per il relativo flusso documentato

Options := TPdfFormMergeOptions.Default;
Options.GraftOptions.CollisionPolicy := pagcpNamespace;
if not MergePdfFilesWithForms(Pdf, Sources, Options, Report) then
  raise EPdfError.Create(Report.ErrorMessage);

Dichiarazioni pubbliche

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;