function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. 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 |
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ę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
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;