PDFium Delphi Component Docs

FlattenPage Metodo

Componente: TPdf  ·  Unità: PDFium
Appiattisce annotazioni e widget dei moduli sulla pagina corrente in contenuto di pagina permanente e non modificabile. nFlag seleziona il profilo di appiattimento: FLAT_NORMALDISPLAY (0) per la visualizzazione a schermo oppure FLAT_PRINT (1) per l'output stampato. Restituisce uno tra FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO o FLATTEN_FAIL. Chiama prima GenerateFormAppearances quando appiattisci valori di modulo compilati.

Syntax

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

nFlagInteger. Seleziona il profilo di flattening. Passa FLAT_NORMALDISPLAY (0, predefinito) per ottimizzare l'output per la visualizzazione su schermo, oppure FLAT_PRINT (1) per ottimizzare l'output stampato

Return Value

Una delle tre costanti intere: FLATTEN_SUCCESS (1) — le annotazioni sono state unite con successo nel contenuto della pagina; FLATTEN_NOTHINGTODO (2) — la pagina non aveva annotazioni o widget da appiattire; FLATTEN_FAIL (0) — l'operazione è fallita.

Description

FlattenPage unisce tutte le annotazioni e i widget AcroForm della pagina corrente nello stream di contenuto di pagina permanente e non modificabile. Una volta appiattite, le annotazioni non sono più interattive — diventano grafica ordinaria che non può essere modificata, eliminata o inviata. Questa è la tecnica standard per produrre un PDF "bloccato" che preserva l'aspetto visivo di un modulo compilato o di un documento annotato.

Il parametro nFlag seleziona il profilo di rendering usato quando si disegnano i widget nel contenuto della pagina. Usa FLAT_NORMALDISPLAY (0) per i documenti che saranno visualizzati a schermo, e FLAT_PRINT (1) per i documenti destinati alla stampa.

Quando la pagina contiene campi di modulo compilati, devi chiamare GenerateFormAppearances prima di FlattenPage. Senza gli stream di aspetto, l'appiattitore non ha alcuna rappresentazione visiva da unire e ometterà silenziosamente i valori dei campi dall'output. La sequenza consigliata per una singola pagina è: assegna i valori FormField[] → GenerateFormAppearances → FlattenPage → SaveAs.

Per appiattire ogni pagina di un documento con una singola chiamata, usa FlattenAllPages. Controlla il valore di ritorno rispetto a FLATTEN_FAIL per rilevare gli errori; FLATTEN_NOTHINGTODO non è una condizione di errore.

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