/PageLabels számfa a megadott tartományokra cserélődikfunction SaveAsPageLabelled(Stream: TStream;
const Ranges: TPdfPageLabelRanges;
ReplaceExisting: Boolean;
out Report: TPdfPageLabelReport): Boolean; overload;
function SaveAsPageLabelled(const FileName: string;
const Ranges: TPdfPageLabelRanges;
ReplaceExisting: Boolean;
out Report: TPdfPageLabelReport): Boolean; overload;
A SaveAsPageLabelled teljes PDF-másolatot ír, amelyben a dokumentumkatalógus a megadott tartományokból felépített friss /PageLabels számfát hordozza. Minden tartomány számozási stílusa, előszövege és kezdőszáma az ISO 32000-1 §12.4.2 szabványt követi
Belsőleg a PDFium először memóriafolyamba menti a dokumentumot; a mentett bájtok ezt követően újraírásra kerülnek, hogy a katalógusba beillesztésre (vagy cserére) kerüljön a /PageLabels bejegyzés, és egy új kereszthivatkozás-szakasz fűződjön hozzá. A látható oldaltartalom változatlan marad; csak az oldalcímkék metaadatai íródnak újra
A meglévő /PageLabels bejegyzések szótár-vizsgálattal kerülnek felismerésre. Amikor ReplaceExisting=False, a hívás leíró hibával hiúsul meg, ahelyett hogy csendben felülírná a korábbi címkéket. Amikor ReplaceExisting=True, a korábbi /PageLabels bejegyzés eltávolításra kerül az új tartományok beszúrása előtt, így a keletkező katalógusban pontosan egy /PageLabels kulcs marad
Ranges — egy vagy több TPdfPageLabelRange rekord. A tartományok a kibocsátás előtt StartPageIndex szerint rendezésre kerülnek, így a számfa mindig jól formált maradReplaceExisting — a False elutasítja a hívást, ha a katalógusban már van /PageLabels; a True eltávolítja és lecseréli aztReport — bemeneti/kimeneti bájtszámokat, alkalmazott tartományszámot, a korábbi címkék cseréjének tényét és az esetleges hibaüzenetet kapjaTPdfPageLabelStyle értékek PDF /S kulcsokra képeződnek le: plsDecimal=/D, plsUppercaseRoman=/R, plsLowercaseRoman=/r, plsUppercaseLetters=/A, plsLowercaseLetters=/a, a plsNone kizárólag előtaggal rendelkező címkéket bocsát kiPrefix PDF literál karakterláncként kódolódik. Az ASCII karakterek tisztán oda-vissza alakíthatók; a (, ), \ és a whitespace escape-elésre kerül. Az U+007F feletti nem ASCII kódpontok alacsony bájtos oktális escape-re esnek vissza; a teljes UTF-16BE-t igénylő hívóknak előzetesen kell kódolniuk az előtagotStartNumber csak akkor lép érvénybe, ha a Style nem plsNone. Az 1 alapértelmezett PDF-érték kimarad a kibocsátott szótárbólTPdf.PageLabel[] tulajdonságot
var
Ranges: TPdfPageLabelRanges;
Report: TPdfPageLabelReport;
begin
SetLength(Ranges, 2);
Ranges[0].StartPageIndex := 0;
Ranges[0].Style := plsDecimal;
Ranges[0].StartNumber := 1;
Ranges[1].StartPageIndex := 3;
Ranges[1].Style := plsLowercaseRoman;
Ranges[1].Prefix := 'Appendix ';
Pdf1.SaveAsPageLabelled('C:\Labelled.pdf', Ranges, False, Report);
end;