function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. Väljer utplattningsprofilen. Skicka FLAT_NORMALDISPLAY (0, standard) för att optimera utdata för skärmvisning, eller FLAT_PRINT (1) för att optimera för utskriftsutdata |
FLATTEN_SUCCESS (1) — annoteringarna slogs samman i sidinnehållet utan problem; FLATTEN_NOTHINGTODO (2) — sidan hade inga annoteringar eller widgetar att platta ut; FLATTEN_FAIL (0) — operationen misslyckadesFlattenPage sammanfogar alla annoteringar och AcroForm-widgetar på den aktuella sidan till den permanenta, icke-redigerbara sidinnehållsströmmen. När de har plattats till är annoteringarna inte längre interaktiva — de blir vanlig grafik som inte kan redigeras, tas bort eller skickas in. Detta är standardtekniken för att producera ett "låst" PDF-dokument som bevarar det visuella utseendet hos ett ifyllt formulär eller ett annoterat dokument
Parametern nFlag väljer renderingsprofilen som används när widgetar ritas in i sidinnehållet. Använd FLAT_NORMALDISPLAY (0) för dokument som ska visas på skärmen och FLAT_PRINT (1) för dokument som är avsedda för utskrift
När sidan innehåller ifyllda formulärfält måste du anropa GenerateFormAppearances före FlattenPage. Utan utseendeströmmar har utplattaren ingen visuell representation att sammanfoga och utelämnar fältvärdena tyst från utdata. Den rekommenderade sekvensen för en enskild sida är: tilldela FormField[]-värden → GenerateFormAppearances → FlattenPage → SaveAs
För att platta till varje sida i ett dokument med ett enda anrop använder du FlattenAllPages. Jämför returvärdet med FLATTEN_FAIL för att upptäcka fel; FLATTEN_NOTHINGTODO är inte ett feltillstånd
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;