Voeg FPdfFormMerge toe om MergePdfFilesWithForms of TPdfFormMergeHelper.MergeFilesWithForms beschikbaar te maken
De helper zet geselecteerde pagina-imports en veldtransplantatie klaar, verwijdert wees geworden geïmporteerde widgets en heropent het opgeslagen resultaat onafhankelijk voordat het document van de aanroeper wordt vervangen; fouten en annulering laten het doel onaangetast
pagcpReject verwerpt een dubbele volledig gekwalificeerde veldnaam, pagcpRename voegt een deterministisch botsingsvrij voor- en achtervoegsel toe, en pagcpNamespace plaatst een echt oudererveld ertussen om elke bron te isoleren
pagcpMergeCompatible voegt compatibele tekst- of keuzevelden op eindniveau samen zodat hun widgets één waarde delen; dit vereist gelijke vlaggen, waarden, standaardwaarden, opties en zelfstandige fontsemantiek, en verwerpt veldacties, rich text en incompatibele veldtypen
Filteren op geselecteerde pagina's snoeit ongebruikte widgets en velden weg en behoudt de gefilterde, gededupeerde volgorde van berekeningen; standaardresources worden geïsoleerd en namen van default appearances herschreven, terwijl gekloonde appearance streams hun eigen resources behouden
Gecombineerde veld-widgets worden genormaliseerd voordat compatibele velden worden samengevoegd; zelfstandige namen blijven na opslaan en heropenen zelfstandig bewerkbaar
InsertAt is een op 0 gebaseerde invoegindex; -1 voegt pagina's achteraan toe. Standaardlimieten zijn 10,000 pagina's totaal en 256 MiB per document, met transplantatielimieten van 100,000 objecten en diepte 128
Harde transplantatielimieten zijn 1,000,000 objecten, diepte 256 en 4,096 hoofdvelden; herhaaldelijk geselecteerde pagina's, XFA-bronnen of -doelen, ondertekende bronnen of doelen en versleutelde doelen worden geweigerd
Bronwachtwoorden mogen een bron ontsleutelen voor de klaargezette samenvoeging; het resultaat is onversleuteld, dus pas daarna zo nodig een expliciete versleutelingsworkflow toe
De verouderde overload GraftPdfAcroForm behoudt zijn weigerbeleid; de overload met TPdfAcroFormGraftOptions stelt dezelfde collision- en resource-policies op streamniveau beschikbaar
Deze formulierhelper bewaart geen bronoutlines of named destinations; gebruik de navigatiehelper voor de daar aangegeven navigatiewerkstroom
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;