function ImportPagesByIndex(
Source : TPdf;
const PageIndices: array of Integer;
InsertAt : Integer = 0): Boolean;
ImportPagesByIndex kopiert eine explizite Menge von Seiten aus
Source in DIESES Dokument. Anders als
ImportPages, das einen 1-basierten Range-String
("1-3,7,10-12") parst, nimmt ImportPagesByIndex die Indizes direkt als
0-basiertes Pascal-Open-Array — ideal, wenn die Seitenliste aus
Programmlogik stammt (eine angehakte Thumbnail-Liste, eine gefilterte Abfrage,
usw.)
InsertAt ist der 0-basierte Zielindex für die
ERSTE importierte Seite: 0 übergeben, um vor der vorhandenen Seite 1 einzufügen,
PageCount übergeben, um anzuhängen. Außerhalb des Bereichs liegende
InsertAt-Werte begrenzt PDFium selbst
Ein leeres PageIndices-Array übergeben, um jede Seite
aus Source zu importieren (äquivalent dazu,
nil auf C-ABI-Ebene zu übergeben). Das ist die
Importier-alles-in-einem-Aufruf-Kurzform
Liefert True bei Erfolg. Liefert False,
wenn ein Index in Source außerhalb des Bereichs liegt oder wenn eines der
Dokumente nicht Active ist. Löst EPdfError
aus, wenn Source nil ist
MovePages, um an Ort und Stelle umzuordnenPageIndices werden gegen den aktuellen Zustand von Source ausgewertet; Umordnungen oder Löschungen in Source nach dem Aufruf ändern nicht rückwirkend, was importiert wurdeImportNPagesToOne verwenden, wenn das Ziel ist, Seiten auf einem neuen Dokument zu komponieren (N-up-Raster), statt sie zu kopieren
var
Source: TPdf;
begin
Source := TPdf.Create(nil);
try
Source.FileName := 'C:\Report.pdf';
Source.Active := True;
// Import pages 1, 3, 5 (zero-based: 0, 2, 4) and append
Pdf1.ImportPagesByIndex(Source, [0, 2, 4], Pdf1.PageCount);
// Or import every source page at the start of Pdf1
// Pdf1.ImportPagesByIndex(Source, [], 0);
finally
Source.Free;
end;
end;