PDFiumPas 文档

ImportNPagesToOne 方法

此 API 条目保留标识符、签名、代码块和 PDF 术语的原始形式。
组件: TPdf  ·  单元: PDFium
构建一个全新的 TPdf,其页面是源文档页面按 NumX×NumY 组合而成,适合 N-up 打印版式

语法

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

说明

ImportNPagesToOne 会把此文档中的页面组合到一个新的输出 PDF 中,每个输出页都以网格方式排布 NumX × NumY 个源页面。源页面会按比例缩放以适配其单元格,同时保留原始纵横比;超出 输出页边界的单元格内容会被裁剪

OutputWidthOutputHeight 使用 PDF user units(1 unit = 1/72 inch)。对于 A4 横向输出页,请传入 842 × 595。每一行从左到右填充,再按行从上到下排列,和常规打印机的 N-up 版式一致

函数返回一个新的 TPdf 实例。返回对象的所有权归调用方所有,必须将其 Free 掉(或者在赋值给另一个变量之前先将 Active := False)。如果 PDFium 拒绝这些参数 (轴数为零、OOM 等),则返回 nil。源文档(此 TPdf)必须处于 Active 状态

返回文档按 ceil(SourcePages / (NumX×NumY)) 生成每个合成页。如果源页面数不是单元格数量的整数倍,最后一个合成页可能 只填充了一部分

备注

示例

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;

另请参阅

ImportPages, ImportPagesByIndex, MovePages