HPDF_Catalog HPDF_Catalog_New (HPDF_MMgr mmgr, HPDF_Xref xref) { HPDF_Catalog catalog; HPDF_STATUS ret = 0; catalog = HPDF_Dict_New (mmgr); if (!catalog) return NULL; catalog->header.obj_class |= HPDF_OSUBCLASS_CATALOG; if (HPDF_Xref_Add (xref, catalog) != HPDF_OK) return NULL; /* add requiered elements */ ret += HPDF_Dict_AddName (catalog, "Type", "Catalog"); ret += HPDF_Dict_Add (catalog, "Pages", HPDF_Pages_New (mmgr, NULL, xref)); if (ret != HPDF_OK) return NULL; return catalog; }
HPDF_Pages HPDF_Doc_AddPagesTo (HPDF_Doc pdf, HPDF_Pages parent) { HPDF_Pages pages; HPDF_PTRACE ((" HPDF_AddPagesTo\n")); if (!HPDF_HasDoc (pdf)) return NULL; if (!HPDF_Pages_Validate (parent)) { HPDF_RaiseError (&pdf->error, HPDF_INVALID_PAGES, 0); return NULL; } /* check whether the page belong to the pdf */ if (pdf->mmgr != parent->mmgr) { HPDF_RaiseError (&pdf->error, HPDF_INVALID_PAGES, 0); return NULL; } pages = HPDF_Pages_New (pdf->mmgr, parent, pdf->xref); if (pages) pdf->cur_pages = pages; else HPDF_CheckError (&pdf->error); return pages; }