PDFium Delphi Component Docs

MergeFiles-metodi

Component: TPdf  ·  Unit: PDFium
Yhdistää tiedostopohjaiset PDF-lähteet natiivien sivujen tuontirajapintojen kautta rajoittaen lähdekahvoja ja tarjoten eksplisiittisiä operaatiokäytäntöjä

Syntax

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;

Source selection

Default options

ErrorPolicybmepStop
FormPolicybmfpPreserveNative
OutlinePolicybmopDiscard
ResourcePolicybmrpSourceScoped
PageChunkSizePdfBatchMergeDefaultPageChunkSize, tällä hetkellä 128 sivua
InsertAt-1, joka lisää kohteen loppuun
CreateDestinationTrue
CopyViewerPreferencesTrue
RollbackOnCancelOrFailureTrue

Resource and cancellation policy

bmrpSourceScoped suorittaa yhden natiivin tuonnin per lähde, jolloin PDFium voi hyödyntää kloonattujen objektien karttaa uudelleen kaikille kyseisen lähteen valituille sivuille

bmrpChunked jakaa valinnan PageChunkSize-kokoisiin eriin tarjoten hienojakoisemmat peruutuskohdat ja pienemmät natiivit kutsut mahdollisen eri välisten resurssien monistuman hinnalla

Korkeintaan yksi lähteeseen liittyvä TPdf on avoinna kerrallaan, ja jokainen lähde suljetaan heti sen tuontiyrityksen jälkeen

Peruutus tarkistetaan lähdeoperaatioiden ja natiivien erien välillä; yksittäistä PDFiumin tuontikutsua ei voi keskeyttää

OnProgress vastaanottaa aloitus-, avaamis-, tuonti-, lähde-, rollback-, peruutus-, virhe- ja valmistumisvaiheet ja voi asettaa Cancel-parametrinsa; jokainen TPdfBatchMergeProgress-tilannevedos kantaa Stage-, SourceIndex-, SourceCount-, FileName-, SourcePageCount-, ImportedSourceCount-, ImportedPageCount- ja NativeImportCallCount-arvot

TPdfBatchMergeReport palauttaa Status-, SourceCount-, AttemptedSourceCount-, ImportedSourceCount-, SkippedSourceCount-, FailedSourceCount-, ImportedPageCount-, CommittedPageCount-, RolledBackPageCount-, PageCountBefore-, PageCountAfter-, NativeImportCallCount-, LargestNativeImportPageCount-, PeakOpenSourceCount-, FormSourceCount-, OutlineSourceCount-, DestinationCreated-, ViewerPreferencesSourceIndex-, ErrorMessage- ja Issues-arvot

CancellationToken hyväksyy saman IPdfCancellationToken-sopimuksen, jota asynkroniset ja progressiiviset API:t käyttävät

Forms, outlines, and viewer preferences

Failure and rollback

Lähde, joka epäonnistuu sen jälkeen, kun yksi tai useampi eri on jo lisännyt sivuja, palautetaan aina lähtörajalleen ennen pysäytyksen tai ohituksen käsittelyä

bmepSkip kirjaa ongelman ja jatkaa seuraavaan lähteeseen, kun taas bmepStop lopettaa operaation

Kun RollbackOnCancelOrFailure=True, pysäyttävät virheet ja peruutus poistavat kaikki operaation lisäämät sivut; operaation luoma kohdedokumentti suljetaan

Kun rollback on poistettu käytöstä, onnistuneesti tuodut lähteet jäävät voimaan ja näkyvät CommittedPageCount-arvossa

Rollback poistaa lisätyt sivut, mutta se ei voi taata jokaisen natiivin katalogin sivuvaikutuksen kumoamista, kuten tuottajametadatan osalta

Report

Status on bmrsCompleted, bmrsCompletedWithErrors, bmrsCancelled tai bmrsFailed

Raportti erottaa yritetyt, tuodut, ohitetut ja epäonnistuneet lähteet tuoduista, voimaan jääneistä ja rollbackilla palautetuista sivuista

NativeImportCallCount, LargestNativeImportPageCount ja PeakOpenSourceCount tekevät valitusta ajastuskäytännöstä mitattavan

Issues säilyttää lähteiden indeksin, tiedostonimen ja virhetekstin epäonnistumisille sekä ei-kohtalokkaille lopetustakaisinkutsun virheille

Example

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;

See Also

ImportPagesByIndex, ImportPages, Asynkroninen suoritus