PDFium Delphi Component Docs

ImportNPagesToOne Метод

Компонент: TPdf  ·  Модуль: PDFium
Создаёт совершенно новый TPdf, страницы которого являются композитами NumX×NumY страниц исходного документа, подходящими для макетов печати N-up

Syntax

function ImportNPagesToOne(
  OutputWidth, OutputHeight: Single;
  NumX, NumY : Cardinal): TPdf;

Description

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)). Последняя составная страница может быть заполнена частично, если количество исходных страниц не кратно количеству ячеек

Remarks

Example

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;

See Also

ImportPages, ImportPagesByIndex, MovePages