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 identifikuje jedan PDF izvor zasnovan na fajluPassword se primenjuje pre otvaranja izvoraPageRange je lista bazirana na jedinici, razdvojena zapetama, poput 1,3,5-7PageRange uvozi sve strane| ErrorPolicy | bmepStop |
| FormPolicy | bmfpPreserveNative |
| OutlinePolicy | bmopDiscard |
| ResourcePolicy | bmrpSourceScoped |
| PageChunkSize | PdfBatchMergeDefaultPageChunkSize, trenutno 128 strana |
| InsertAt | -1, što dodaje na kraj odredišta |
| CreateDestination | True |
| CopyViewerPreferences | True |
| RollbackOnCancelOrFailure | True |
bmrpSourceScoped izvršava jedan izvorni uvoz po izvoru, čime PDFium može da ponovo koristi svoju mapu kloniranih objekata za sve izabrane strane tog izvora
bmrpChunked deli izbor na serije od PageChunkSize strana, dajući finije tačke otkazivanja i manje izvorne pozive po cenu mogućeg udvostručavanja resursa između serija
Najviše jedan izvorni TPdf je otvoren u datom trenutku i svaki izvor se zatvara odmah nakon pokušaja uvoza
Otkazivanje se proverava između operacija nad izvorima i izvornih serija; pojedinačni izvorni poziv uvoza ne može da se prekine
OnProgress prima faze started, opening, importing, source, rollback, cancellation, failure i completion i može da postavi svoj parametar Cancel; svaki snimak TPdfBatchMergeProgress nosi Stage, SourceIndex, SourceCount, FileName, SourcePageCount, ImportedSourceCount, ImportedPageCount i NativeImportCallCount
TPdfBatchMergeReport vraća Status, SourceCount, AttemptedSourceCount, ImportedSourceCount, SkippedSourceCount, FailedSourceCount, ImportedPageCount, CommittedPageCount, RolledBackPageCount, PageCountBefore, PageCountAfter, NativeImportCallCount, LargestNativeImportPageCount, PeakOpenSourceCount, FormSourceCount, OutlineSourceCount, DestinationCreated, ViewerPreferencesSourceIndex, ErrorMessage i Issues
CancellationToken prihvata isti IPdfCancellationToken ugovor koji koriste asinhroni i progresivni API-ji
bmfpPreserveNative zadržava PDFium-ov uvoz strana i vidžeta po principu najbolje namere, ali ne razrešava konflikte AcroForm stabla polja, istoimenih polja, resursa, podrazumevanog izgleda ili redosleda izračunavanjabmfpFlatten generiše prikaze i spljoštava samo izabrane izvorne strane pre uvozabmfpReject odbija AcroForm i XFA izvorebmopDiscard uvozi strane bez ponovne izgradnje izvornog outline-a, dok bmopReject odbija izvore koji sadrže outlineCopyViewerPreferences uključeno; ViewerPreferencesSourceIndex ostaje -1 kada taj izvor nema podržanih unosaIzvor kod kojeg dođe do neuspeha nakon što je jedna ili više serija ubacilo strane uvek se vraća na granicu svog izvora pre postupanja po stop ili skip pravilu
bmepSkip beleži problem i nastavlja sa sledećim izvorom, dok bmepStop prekida operaciju
Sa RollbackOnCancelOrFailure=True, neuspesi sa stop pravilom i otkazivanje uklanjaju sve strane koje je operacija ubacila; odredište koje je operacija kreirala se zatvara
Kada je vraćanje isključeno, uspešno uvezeni izvori ostaju potvrđeni i ogledaju se u CommittedPageCount
Vraćanje uklanja ubačene strane, ali ne može da garantuje opoziv svakog izvornog sporednog efekta u katalogu, poput metapodataka o producer-u
Status je bmrsCompleted, bmrsCompletedWithErrors, bmrsCancelled ili bmrsFailed
Izveštaj razdvaja pokušane, uvezene, preskočene i neuspele izvore od uvezenih, potvrđenih i vraćenih strana
NativeImportCallCount, LargestNativeImportPageCount i PeakOpenSourceCount čine izabranu politiku zakazivanja merljivom
Issues zadržava indeks izvora, ime fajla i tekst greške za neuspehe i nefatalne završne greške callback-ova
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;