PDFium Component Docs

FlattenPage Metoda

Component: TPdf  ·  Unit: PDFium
Spłaszcza adnotacje i widgety formularza na bieżącej stronie do trwałej, nieedytowalnej treści strony. nFlag wybiera profil spłaszczania: FLAT_NORMALDISPLAY (0) dla wyświetlania na ekranie lub FLAT_PRINT (1) dla wydruku. Zwraca jedną z wartości FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO albo FLATTEN_FAIL. Przy spłaszczaniu wypełnionych wartości formularza najpierw wywołaj GenerateFormAppearances

Syntax

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

nFlagInteger. Wybiera profil spłaszczania. Przekaż FLAT_NORMALDISPLAY (0, wartość domyślna), aby zoptymalizować wynik pod wyświetlanie na ekranie, albo FLAT_PRINT (1), aby zoptymalizować pod wydruk

Return Value

Jedna z trzech stałych całkowitych: FLATTEN_SUCCESS (1) — adnotacje zostały pomyślnie scalone z treścią strony; FLATTEN_NOTHINGTODO (2) — strona nie miała adnotacji ani widgetów do spłaszczenia; FLATTEN_FAIL (0) — operacja nie powiodła się

Description

FlattenPage scala wszystkie adnotacje i widżety AcroForm na bieżącej stronie z trwałym, nieedytowalnym strumieniem treści strony. Po spłaszczeniu adnotacje przestają być interaktywne — stają się zwykłą grafiką, której nie można edytować, usuwać ani przesyłać. Jest to standardowa technika wytwarzania „zablokowanego” pliku PDF zachowującego wygląd wypełnionego formularza lub opatrzonego adnotacjami dokumentu

Parametr nFlag wybiera profil renderowania stosowany przy rysowaniu widżetów w treści strony. Użyj FLAT_NORMALDISPLAY (0) dla dokumentów przeznaczonych do przeglądania na ekranie oraz FLAT_PRINT (1) dla dokumentów przeznaczonych do druku

Gdy strona zawiera wypełnione pola formularza, przed wywołaniem FlattenPage musisz wywołać GenerateFormAppearances. Bez strumieni wyglądu mechanizm spłaszczania nie ma wizualnej reprezentacji do scalenia i po cichu pominie wartości pól w wyniku. Zalecana sekwencja dla pojedynczej strony to: przypisanie wartości FormField[] → GenerateFormAppearances → FlattenPage → SaveAs

Aby spłaszczyć wszystkie strony dokumentu jednym wywołaniem, użyj FlattenAllPages. Porównaj zwróconą wartość z FLATTEN_FAIL, aby wykryć błędy; FLATTEN_NOTHINGTODO nie jest stanem błędu

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