5 loadoutline(pdf_outline
**nodep
, pdf_xref
*xref
, fz_obj
*dict
)
11 node
= fz_malloc(sizeof(pdf_outline
));
12 node
->title
= "<unknown>";
17 pdf_logpage("load outline {\n");
19 obj
= fz_dictgets(dict
, "Title");
22 error
= pdf_toutf8(&node
->title
, obj
);
25 pdf_logpage("title %s\n", node
->title
);
28 if (fz_dictgets(dict
, "Dest") || fz_dictgets(dict
, "A"))
30 error
= pdf_loadlink(&node
->link
, xref
, dict
);
35 obj
= fz_dictgets(dict
, "First");
38 error
= pdf_resolve(&obj
, xref
);
41 error
= loadoutline(&node
->child
, xref
, obj
);
49 obj
= fz_dictgets(dict
, "Next");
52 error
= pdf_resolve(&obj
, xref
);
55 error
= loadoutline(&node
->next
, xref
, obj
);
66 pdf_loadoutline(pdf_outline
**nodep
, pdf_xref
*xref
)
73 pdf_logpage("load outlines {\n");
77 obj
= fz_dictgets(xref
->root
, "Outlines");
80 error
= pdf_resolve(&obj
, xref
);
84 first
= fz_dictgets(obj
, "First");
87 error
= pdf_resolve(&first
, xref
);
91 error
= loadoutline(&node
, xref
, first
);
107 pdf_dropoutline(pdf_outline
*outline
)
110 pdf_dropoutline(outline
->child
);
112 pdf_dropoutline(outline
->next
);
113 pdf_droplink(outline
->link
);
114 fz_free(outline
->title
);
119 pdf_debugoutline(pdf_outline
*outline
, int level
)
124 for (i
= 0; i
< level
; i
++)
127 printf("%s ", outline
->title
);
130 fz_debugobj(outline
->link
->dest
);
137 pdf_debugoutline(outline
->child
, level
+ 2);
139 outline
= outline
->next
;