function ImportNPagesToOne(
OutputWidth, OutputHeight: Single;
NumX, NumY : Cardinal): TPdf;
ImportNPagesToOne компонует страницы из ЭТОГО документа в новый
выходной PDF, где каждая выходная страница размещает
NumX × NumY исходных страниц
в сетке. Исходные страницы масштабируются по размеру своей ячейки с
сохранением исходного соотношения сторон; ячейки, выходящие за границы
выходной страницы, обрезаются
OutputWidth и OutputHeight задаются в
пользовательских единицах PDF (1 единица = 1/72 дюйма). Для выходной
страницы A4 альбомной ориентации передайте 842 × 595. Каждая строка
заполняется слева направо, затем строка за строкой сверху вниз, что
соответствует стандартному макету N-up принтера
Функция возвращает новый экземпляр TPdf. Вызывающий
владеет возвращённым объектом и должен вызвать Free
(или установить Active := False перед присвоением другой
переменной). Возвращает nil, если PDFium отклонил аргументы
(нулевое количество осей, OOM и т. д.). Исходный документ (этот TPdf)
должен быть Active
Возвращённый документ содержит одну составную страницу на каждый ceil(SourcePages / (NumX×NumY)). Последняя составная страница может быть заполнена частично, если количество исходных страниц не кратно количеству ячеек
OutputWidth = 842, OutputHeight = 595, NumX = 2, NumY = 1OutputWidth = 595, OutputHeight = 842, NumX = 2, NumY = 2ImportPages или ImportPagesByIndex
var
Composite: TPdf;
begin
Pdf1.FileName := 'C:\Slides.pdf';
Pdf1.Active := True;
// 4-up landscape: 842 x 595 pt, 2 columns x 2 rows
Composite := Pdf1.ImportNPagesToOne(842, 595, 2, 2);
try
if Composite <> nil then
Composite.SaveAs('C:\Slides_4up.pdf');
finally
Composite.Free;
end;
end;