function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. 평면화 프로파일을 고릅니다. 화면 보기에 맞춰 출력을 최적화하려면 FLAT_NORMALDISPLAY(0, 기본값), 인쇄 출력에 맞추려면 FLAT_PRINT(1)를 넘기세요 |
FLATTEN_SUCCESS(1) — 주석이 페이지 콘텐츠로 성공적으로 병합됨, FLATTEN_NOTHINGTODO(2) — 평면화할 주석이나 위젯이 페이지에 없음, FLATTEN_FAIL(0) — 작업 실패FlattenPage는 현재 페이지의 모든 주석과 AcroForm 위젯을 영구적이고 편집할 수 없는 페이지 콘텐츠 스트림으로 병합합니다. 평면화된 주석은 더 이상 대화형이 아닙니다 — 편집, 삭제, 제출이 불가능한 평범한 그래픽이 됩니다. 채워진 폼이나 주석 달린 문서의 보이는 모양을 그대로 유지하는 "잠긴" PDF를 만드는 표준 기법입니다
nFlag 파라미터는 위젯을 페이지 콘텐츠로 그릴 때 쓰는 렌더링 프로파일을 고릅니다. 화면에서 볼 문서는 FLAT_NORMALDISPLAY(0), 인쇄용 문서는 FLAT_PRINT(1)를 쓰세요
페이지에 채워진 폼 필드가 있다면 FlattenPage 전에 반드시 GenerateFormAppearances를 호출해야 합니다. appearance stream이 없으면 평면화기는 병합할 시각 표현이 없어 필드 값을 출력에서 조용히 생략합니다. 단일 페이지 권장 순서는 FormField[] 값 대입 → GenerateFormAppearances → FlattenPage → SaveAs입니다
문서의 모든 페이지를 한 번에 평면화하려면 FlattenAllPages를 쓰세요. 오류 감지는 반환값을 FLATTEN_FAIL과 비교하면 되고, FLATTEN_NOTHINGTODO는 오류 조건이 아닙니다
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;