PDFium Delphi Component Docs

FlattenPage 메서드

컴포넌트: TPdf  ·  유닛: PDFium
현재 page의 annotation과 form widget을 영구적인 비편집 page content로 평탄화합니다. nFlag는 평탄화 프로필을 선택하며, 화면 표시에는 FLAT_NORMALDISPLAY(0), 인쇄 출력에는 FLAT_PRINT(1)을 사용합니다. 반환값은 FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO, FLATTEN_FAIL 중 하나입니다. 채워진 form value를 평탄화할 때는 먼저 GenerateFormAppearances를 호출하세요

Syntax

function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;

nFlagInteger. 평면화 프로파일을 고릅니다. 화면 보기에 맞춰 출력을 최적화하려면 FLAT_NORMALDISPLAY(0, 기본값), 인쇄 출력에 맞추려면 FLAT_PRINT(1)를 넘기세요

Return Value

세 정수 상수 중 하나입니다. FLATTEN_SUCCESS(1) — 주석이 페이지 콘텐츠로 성공적으로 병합됨, FLATTEN_NOTHINGTODO(2) — 평면화할 주석이나 위젯이 페이지에 없음, FLATTEN_FAIL(0) — 작업 실패

Description

FlattenPage는 현재 페이지의 모든 주석과 AcroForm 위젯을 영구적이고 편집할 수 없는 페이지 콘텐츠 스트림으로 병합합니다. 평면화된 주석은 더 이상 대화형이 아닙니다 — 편집, 삭제, 제출이 불가능한 평범한 그래픽이 됩니다. 채워진 폼이나 주석 달린 문서의 보이는 모양을 그대로 유지하는 "잠긴" PDF를 만드는 표준 기법입니다

nFlag 파라미터는 위젯을 페이지 콘텐츠로 그릴 때 쓰는 렌더링 프로파일을 고릅니다. 화면에서 볼 문서는 FLAT_NORMALDISPLAY(0), 인쇄용 문서는 FLAT_PRINT(1)를 쓰세요

페이지에 채워진 폼 필드가 있다면 FlattenPage 전에 반드시 GenerateFormAppearances를 호출해야 합니다. appearance stream이 없으면 평면화기는 병합할 시각 표현이 없어 필드 값을 출력에서 조용히 생략합니다. 단일 페이지 권장 순서는 FormField[] 값 대입 → GenerateFormAppearances → FlattenPage → SaveAs입니다

문서의 모든 페이지를 한 번에 평면화하려면 FlattenAllPages를 쓰세요. 오류 감지는 반환값을 FLATTEN_FAIL과 비교하면 되고, FLATTEN_NOTHINGTODO는 오류 조건이 아닙니다

Example

var
  Res: Integer;
begin
  Pdf1.PageIndex := 0;
  // Fill a form field, regenerate appearances, then flatten
  Pdf1.FormField[0] := 'John Smith';
  Pdf1.GenerateFormAppearances;
  Res := Pdf1.FlattenPage(FLAT_NORMALDISPLAY);
  if Res = FLATTEN_FAIL then
    ShowMessage('Flatten failed')
  else
    Pdf1.SaveAs('output_flat.pdf');
end;

See Also

FlattenAllPages, GenerateFormAppearances, SaveAs, Annotation