function ImportPagesByIndex(
Source : TPdf;
const PageIndices: array of Integer;
InsertAt : Integer = 0): Boolean;
ImportPagesByIndex копирует явный набор страниц из Source в ЭТОТ документ. В отличие от ImportPages, парсящей строку диапазона с единицы ("1-3,7,10-12"), ImportPagesByIndex принимает индексы напрямую как Pascal open array с нуля — идеально, когда список страниц приходит из логики программы (отмеченный список миниатюр, отфильтрованный запрос и т.п.)
InsertAt — целевой индекс с нуля для ПЕРВОЙ импортируемой страницы: 0 вставляет перед существующей страницей 1, PageCount добавляет в конец. Значения InsertAt вне диапазона PDFium приводит в допустимые
Передайте пустой массив PageIndices, чтобы импортировать все страницы из Source (эквивалент nil на уровне C ABI). Это сокращение «импортировать всё одним вызовом»
При успехе возвращается True. False возвращается, если какой-то индекс вне диапазона в Source или если любой из документов не Active. При Source = nil поднимается EPdfError
MovePages для переупорядочивания на местеPageIndices вычисляются по текущему состоянию Source; переупорядочивания или удаления в Source после вызова ретроспективно не меняют импортированноеImportNPagesToOne
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;