PDFium Component Docs

BookmarkFrom vlastnosť

Component: TPdf  ·  Unit: PDFium
Prevedie surový handle FPDF_BOOKMARK na plne vyplnený záznam TBookmark tým, že načíta názov, cieľovú stranu a metadáta akcie pre daný uzol obrysu

Syntax

property BookmarkFrom[Handle: FPDF_BOOKMARK]: TBookmark; // read only

Description

BookmarkFrom je most medzi prechádzaním záložiek PDFium na nízkej úrovni a záznamom TBookmark na vysokej úrovni. Kedykoľvek získate handle FPDF_BOOKMARK priamo z PDFium (napríklad cez FPDFBookmark_GetFirstChild, FPDFBookmark_GetNextSibling alebo ako súčasť hit-testu kliknutia v prehliadači), odovzdajte ho týmto indexerom, aby ste dostali rozlíšený text názvu, cieľové PageNumber, druh TPdfAction a prípadnú pridruženú URI / cestu k súboru.

Vrátený záznam je snímok: raz prečíta slovník záložky a dekóduje cieľ do 1-základného čísla strany. Samotný handle je tiež uložený v zázname, takže ho môžete odovzdať späť do API PDFium bez ďalšieho prechodu stromom.

Tento indexer je kanonický spôsob implementácie vlastného prechodu osnovy, ktorý potrebuje viac kontroly než Bookmarks (ktoré vymenúvajú všetko do hĺbky) alebo BookmarkChildren (ktoré vracajú iba priame potomky). Zmiešajte surové handly PDFium s rozlíšením BookmarkFrom na vytvorenie napríklad stromového zobrazenia s lenivým načítavaním.

Parameters

HandleFPDF_BOOKMARK. Handle záložky nie-nil získaný z C API PDFium alebo z predchádzajúceho poľa TBookmark.Handle. Odovzdanie nil vráti nulou vyplnený záznam. Handle zostáva platný iba kým je podkladový dokument načítaný.

Remarks

Example

procedure TForm1.DumpOutline(const Bm: TBookmark; Depth: Integer);
var
  Child: FPDF_BOOKMARK;
  Sub: TBookmark;
begin
  Memo1.Lines.Add(StringOfChar(' ', Depth * 2) + Bm.Title +
    Format(' -> page %d', [Bm.ActionPageNumber]));
  Child := FPDFBookmark_GetFirstChild(Pdf1.Document, Bm.Handle);
  while Child <> nil do
  begin
    Sub := Pdf1.BookmarkFrom[Child];
    DumpOutline(Sub, Depth + 1);
    Child := FPDFBookmark_GetNextSibling(Pdf1.Document, Child);
  end;
end;

See Also

Bookmark, Bookmarks, BookmarkChildren, HasBookmarkChildren