PDFium Delphi Component Docs

FlattenAllPages 메서드

컴포넌트: TPdf  ·  유닛: PDFium
문서의 모든 page를 평탄화하는 편의 래퍼입니다. 모든 page가 FLATTEN_SUCCESS 또는 FLATTEN_NOTHINGTODO로 끝나면 True를 반환합니다. 권장 작업 흐름: GenerateFormAppearances → FlattenAllPages → SaveAs

Syntax

function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean;

nFlagInteger. 모든 페이지에 적용할 평면화 프로파일을 고릅니다. 화면 보기에 최적화하려면 FLAT_NORMALDISPLAY(0, 기본값), 인쇄 출력에 최적화하려면 FLAT_PRINT(1)를 넘기세요

Return Value

문서의 모든 페이지가 FLATTEN_SUCCESS(1)나 FLATTEN_NOTHINGTODO(2)를 반환했으면 True, 하나라도 FLATTEN_FAIL(0)을 반환했으면 False

Description

FlattenAllPages는 로드된 문서의 모든 페이지를 순회하며 각 페이지에 FlattenPage에 상응하는 호출을 하는 편의 래퍼입니다. 모든 페이지의 주석과 AcroForm 위젯이 한 번의 호출로 영구적이고 편집할 수 없는 페이지 콘텐츠로 병합됩니다

이 메서드는 모든 페이지가 FLATTEN_SUCCESS나 FLATTEN_NOTHINGTODO로 끝났을 때만 True를 반환합니다. 한 페이지라도 FLATTEN_FAIL을 반환하면 메서드는 False를 반환하지만, 나머지 페이지의 평면화는 계속 진행됩니다

문서에 채워진 폼 필드가 있다면 FlattenAllPages 전에 반드시 GenerateFormAppearances를 호출하세요. appearance stream이 없으면 필드 값이 평면화 출력에 나타나지 않습니다. 권장 전체 워크플로는 FormField[] 값 대입 → GenerateFormAppearances → FlattenAllPages → SaveAs입니다

한 페이지만 평면화하고 개별 결과 코드를 확인하려면 FlattenPage를 쓰세요

Example

begin
  // Fill fields, generate appearances, flatten entire document
  Pdf1.FormField[0] := 'Jane Doe';
  Pdf1.FormField[1] := '2026-05-20';
  Pdf1.GenerateFormAppearances;
  if Pdf1.FlattenAllPages(FLAT_NORMALDISPLAY) then
    Pdf1.SaveAs('output_flat_all.pdf')
  else
    ShowMessage('One or more pages could not be flattened');
end;

See Also

FlattenPage, GenerateFormAppearances, SaveAs