function ImportPagesByIndex(
Source : TPdf;
const PageIndices: array of Integer;
InsertAt : Integer = 0): Boolean;
ImportPagesByIndex copie un ensemble explicite de pages depuis Source dans CE document. Contrairement à ImportPages, qui analyse une chaîne de plage à base de un ("1-3,7,10-12"), ImportPagesByIndex prend les indices directement sous la forme d’un tableau ouvert Pascal à base zéro — idéal lorsque la liste de pages provient de la logique du programme (une liste cochée de miniatures, une requête filtrée, etc.)
InsertAt est l’indice de destination à base zéro pour la PREMIÈRE page importée : passez 0 pour insérer avant la page 1 existante, passez PageCount pour ajouter à la fin. Les valeurs InsertAt hors plage sont bornées par PDFium
Passez un tableau PageIndices vide pour importer chaque page depuis Source (l’équivalent de passer nil au niveau de l’ABI C). C’est le raccourci « tout importer en un seul appel »
Renvoie True en cas de succès. Renvoie False si un indice est hors plage dans Source ou si l’un des documents n’est pas Active. Lève EPdfError lorsque Source est nil
MovePages pour réordonner sur placePageIndices sont évalués contre l’état courant de Source ; les réordonnancements ou suppressions dans Source après l’appel ne changent pas rétroactivement ce qui a été importéImportNPagesToOne lorsque l’objectif est de composer des pages sur un nouveau document (grille N-up) plutôt que de les copier
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;