function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. Wählt das Glättungsprofil. Übergeben Sie FLAT_NORMALDISPLAY (0, Standard), um die Ausgabe für die Bildschirmdarstellung zu optimieren, oder FLAT_PRINT (1) für die Druckausgabe |
FLATTEN_SUCCESS (1) - Anmerkungen wurden erfolgreich in den Seiteninhalt zusammengeführt; FLATTEN_NOTHINGTODO (2) - die Seite hatte keine Anmerkungen oder Widgets zum Glätten; FLATTEN_FAIL (0) - die Operation ist fehlgeschlagenFlattenPage führt alle Anmerkungen und AcroForm-Widgets auf der aktuellen Seite in den dauerhaften, nicht editierbaren Seiteninhaltsstrom zusammen. Nach dem Glätten sind die Anmerkungen nicht mehr interaktiv — sie werden zu gewöhnlichen Grafiken, die nicht mehr bearbeitet, gelöscht oder übermittelt werden können. Dies ist die Standardtechnik zur Erzeugung eines „gesperrten" PDFs, das das visuelle Erscheinungsbild eines ausgefüllten Formulars oder eines kommentierten Dokuments bewahrt
Der Parameter nFlag wählt das Rendering-Profil, das beim Zeichnen der Widgets in den Seiteninhalt verwendet wird. Verwenden Sie FLAT_NORMALDISPLAY (0) für Dokumente, die am Bildschirm betrachtet werden, und FLAT_PRINT (1) für Dokumente, die gedruckt werden sollen
Wenn die Seite ausgefüllte Formularfelder enthält, müssen Sie GenerateFormAppearances vor FlattenPage aufrufen. Ohne Erscheinungsströme hat der Glätter keine visuelle Darstellung zum Zusammenführen und lässt die Feldwerte in der Ausgabe stillschweigend weg. Die empfohlene Reihenfolge für eine einzelne Seite lautet: FormField[]-Werte zuweisen → GenerateFormAppearances → FlattenPage → SaveAs
Um alle Seiten eines Dokuments mit einem Aufruf zu glätten, verwenden Sie FlattenAllPages. Prüfen Sie den Rückgabewert gegen FLATTEN_FAIL, um Fehler zu erkennen; FLATTEN_NOTHINGTODO ist kein Fehlerzustand
var
Res: Integer;
begin
Pdf1.PageIndex := 0;
// Ein Formularfeld ausfüllen, Erscheinungsbilder neu erzeugen, dann glätten
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;