PDFium Delphi Component Docs

FlattenPage Metod

Component: TPdf  ·  Unit: PDFium
Plattar ut annoteringar och formulärwidgetar på aktuell sida till permanent (icke-redigerbart) sidinnehåll. nFlag väljer utplattningsprofil: FLAT_NORMALDISPLAY (0) för skärmvisning eller FLAT_PRINT (1) för utskriftsutdata. Returnerar ett av FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO eller FLATTEN_FAIL. Anropa GenerateFormAppearances först när ifyllda formulärvärden ska plattas ut.

Syntax

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

nFlagInteger. 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

Return Value

En av tre heltalskonstanter: 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 misslyckades

Description

FlattenPage 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

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