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 par rapport à l’état courant de Source ; les réordonnancements ou suppressions dans Source après l’appel ne modifient pas rétroactivement ce qui a été importéImportNPagesToOne à la place lorsque le but est de composer des pages dans 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;