function MergeFiles(const Sources: TPdfBatchMergeSources; out Report: TPdfBatchMergeReport): Boolean; overload;
function MergeFiles(const Sources: TPdfBatchMergeSources; const Options: TPdfBatchMergeOptions; out Report: TPdfBatchMergeReport): Boolean; overload;
class function TPdfBatchMergeSource.FromFile(const AFileName: string; const APageRange: string = ''; const APassword: string = ''): TPdfBatchMergeSource; static;
class function TPdfBatchMergeOptions.Default: TPdfBatchMergeOptions; static;
FileName identificeert één bestandsgebaseerde PDF-bronPassword wordt toegepast voordat de bron wordt geopendPageRange is een door komma's gescheiden lijst met 1-gebaseerde nummers, zoals 1,3,5-7PageRange importeert alle pagina's| ErrorPolicy | bmepStop |
| FormPolicy | bmfpPreserveNative |
| OutlinePolicy | bmopDiscard |
| ResourcePolicy | bmrpSourceScoped |
| PageChunkSize | PdfBatchMergeDefaultPageChunkSize, momenteel 128 pagina's |
| InsertAt | -1, wat achteraan aan de bestemming toevoegt |
| CreateDestination | True |
| CopyViewerPreferences | True |
| RollbackOnCancelOrFailure | True |
bmrpSourceScoped voert per bron één native import uit, zodat PDFium zijn cloned-object map kan hergebruiken voor alle geselecteerde pagina's uit die bron
bmrpChunked splitst de selectie in batches van PageChunkSize, wat fijnmaziger annuleerpunten en kleinere native aanroepen oplevert, ten koste van mogelijk dubbel aangelegde resources over chunkgrenzen heen
Er is tegelijk hooguit één bron-TPdf geopend en elke bron wordt direct na zijn importpoging gesloten
Annulering wordt gecontroleerd tussen bronbewerkingen en native batches door; een afzonderlijke PDFium-importaanroep kan niet worden onderbroken
OnProgress doorloopt de fasen started, opening, importing, source, rollback, cancellation, failure en completion en kan daarbij zijn parameter Cancel instellen; elke momentopname van TPdfBatchMergeProgress bevat Stage, SourceIndex, SourceCount, FileName, SourcePageCount, ImportedSourceCount, ImportedPageCount en NativeImportCallCount
Het TPdfBatchMergeReport geeft Status, SourceCount, AttemptedSourceCount, ImportedSourceCount, SkippedSourceCount, FailedSourceCount, ImportedPageCount, CommittedPageCount, RolledBackPageCount, PageCountBefore, PageCountAfter, NativeImportCallCount, LargestNativeImportPageCount, PeakOpenSourceCount, FormSourceCount, OutlineSourceCount, DestinationCreated, ViewerPreferencesSourceIndex, ErrorMessage en Issues terug
CancellationToken accepteert hetzelfde IPdfCancellationToken-contract dat de asynchrone en progressieve API's gebruiken
bmfpPreserveNative houdt de best-effort pagina- en widgetimport van PDFium aan, maar lost geen conflicten op rond de AcroForm-veldboom, velden met dezelfde naam, resources, default appearances of de berekeningsvolgordebmfpFlatten genereert appearances en flattent alleen de geselecteerde bronpagina's vóór de importbmfpReject wijst AcroForm- en XFA-bronnen afbmopDiscard importeert pagina's zonder de bronoutline opnieuw op te bouwen, terwijl bmopReject bronnen met een outline afwijstCopyViewerPreferences is ingeschakeld; ViewerPreferencesSourceIndex blijft -1 wanneer die bron geen ondersteunde items bevatEen bron die pas faalt nadat één of meer chunks pagina's hebben ingevoegd, wordt altijd teruggedraaid tot zijn bronbegrenzing vóór de stop- of skip-afhandeling
bmepSkip registreert het probleem en gaat verder met de volgende bron, terwijl bmepStop de bewerking beëindigt
Met RollbackOnCancelOrFailure=True verwijderen stopfouten en annulering alle pagina's die de bewerking heeft ingevoegd; een door de bewerking aangemaakte bestemming wordt gesloten
Met rollback uitgeschakeld blijven succesvol geïmporteerde bronnen vastgelegd en zichtbaar in CommittedPageCount
Rollback verwijdert ingevoegde pagina's, maar kan niet garanderen dat elke native neveneffect op de catalog wordt teruggedraaid, zoals producer-metadata
Status is bmrsCompleted, bmrsCompletedWithErrors, bmrsCancelled of bmrsFailed
Het rapport scheidt geprobeerde, geïmporteerde, overgeslagen en mislukte bronnen van geïmporteerde, vastgelegde en teruggedraaide pagina's
NativeImportCallCount, LargestNativeImportPageCount en PeakOpenSourceCount maken het gekozen planningsbeleid meetbaar
Issues bewaart bronindex, bestandsnaam en fouttekst voor mislukkingen en niet-fatale terminale callbackfouten
var
Sources: TPdfBatchMergeSources;
Options: TPdfBatchMergeOptions;
Report: TPdfBatchMergeReport;
begin
SetLength(Sources, 2);
Sources[0] := TPdfBatchMergeSource.FromFile('part-a.pdf', '1-10');
Sources[1] := TPdfBatchMergeSource.FromFile('part-b.pdf', '3,1', Password);
Options := TPdfBatchMergeOptions.Default;
Options.ErrorPolicy := bmepSkip;
Options.FormPolicy := bmfpFlatten;
if not Pdf.MergeFiles(Sources, Options, Report) then
Log(Report.ErrorMessage);
end;