PDFium Delphi Component Docs

MovePages メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
この文書のページを 0 始まりのインデックスで並べ替え、ページ数はそのまま保ちます

Syntax

function MovePages(
  const PageIndices: array of Integer;
  DestPageIndex : Integer): Boolean;

Description

MovePages はこのドキュメントのページを並べ替えます。PageIndices には移動するページの 0 基準インデックスを列挙します(順序は自由、PageCount までの任意の個数)。DestPageIndex は移動完了後に最初の移動ページが置かれる先のインデックスです。他のページは移動ブロックを避けるようにずれるため、ドキュメントの長さは変わりません

例: 5 ページのドキュメントでページが [0, 1, 2, 3, 4] と並んでいるとき、MovePages([2, 3], 0) は [2, 3, 0, 1, 4] を生み出します。ページ 2 と 3 が取り出され、ページ 0 は位置 2(元はページ 2 の場所)へ、ページ 1 は位置 3 へずれ、ページ 4 はそのままです

成功時は True を返します。PageIndices のどれかのインデックスが範囲外、DestPageIndex が範囲外、PageIndices に重複がある、のいずれかでは False を返します

UI で「選択したサムネイルを上 / 下へ移動」やドラッグ&ドロップのページ並べ替えをするなら、これが正しい呼び出しです。別のドキュメントからページの部分集合を「コピー」するには ImportPagesByIndex、削除するには DeletePage を使います

Remarks

Example

// In a 5-page document, move pages 2 and 3 to the start.
// Result: [2, 3, 0, 1, 4]
if not Pdf1.MovePages([2, 3], 0) then
  ShowMessage('Invalid indices passed to MovePages');

// Reverse the entire document
var
  I: Integer;
  Indices: array of Integer;
begin
  SetLength(Indices, Pdf1.PageCount);
  for I := 0 to High(Indices) do
    Indices[I] := High(Indices) - I;
  Pdf1.MovePages(Indices, 0);
end;

See Also

ImportPagesByIndex, ImportNPagesToOne, DeletePage, AddPage