static void gatherpageinfo(int page) { pdf_obj *pageobj; pdf_obj *pageref; pdf_obj *rsrc; pageobj = xref->page_objs[page-1]; pageref = xref->page_refs[page-1]; if (!pageobj) fz_throw(ctx, "cannot retrieve info from page %d", page); gatherdimensions(page, pageref, pageobj); rsrc = pdf_dict_gets(pageobj, "Resources"); gatherresourceinfo(page, rsrc); }
static void gatherpageinfo(int page, int show) { pdf_obj *pageobj; pdf_obj *pageref; pdf_obj *rsrc; pageref = pdf_lookup_page_obj(doc, page-1); pageobj = pdf_resolve_indirect(pageref); if (!pageobj) fz_throw(ctx, FZ_ERROR_GENERIC, "cannot retrieve info from page %d", page); gatherdimensions(page, pageref, pageobj); rsrc = pdf_dict_gets(pageobj, "Resources"); gatherresourceinfo(page, rsrc, show); }
static void gatherinfo(int show, int page) { fz_error error; fz_obj *pageobj; fz_obj *rsrc; fz_obj *font; fz_obj *xobj; fz_obj *shade; fz_obj *pattern; pageobj = pdf_getpageobject(xref, page); if (!pageobj) die(fz_throw("cannot retrieve info from page %d", page)); if (show & DIMENSIONS) { error = gatherdimensions(page, pageobj); if (error) die(fz_rethrow(error, "gathering dimensions at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); } rsrc = fz_dictgets(pageobj, "Resources"); if (show & FONTS) { font = fz_dictgets(rsrc, "Font"); if (font) { error = gatherfonts(page, pageobj, font); if (error) die(fz_rethrow(error, "gathering fonts at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); } } if (show & IMAGES || show & XOBJS) { xobj = fz_dictgets(rsrc, "XObject"); if (xobj) { error = gatherimages(page, pageobj, xobj); if (error) die(fz_rethrow(error, "gathering images at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); error = gatherforms(page, pageobj, xobj); if (error) die(fz_rethrow(error, "gathering forms at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); error = gatherpsobjs(page, pageobj, xobj); if (error) die(fz_rethrow(error, "gathering postscript objects at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); } } if (show & SHADINGS) { shade = fz_dictgets(rsrc, "Shading"); if (shade) { error = gathershadings(page, pageobj, shade); if (error) die(fz_rethrow(error, "gathering shadings at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); } } if (show & PATTERNS) { pattern = fz_dictgets(rsrc, "Pattern"); if (pattern) { error = gatherpatterns(page, pageobj, pattern); if (error) die(fz_rethrow(error, "gathering shadings at page %d (%d %d R)", page, fz_tonum(pageobj), fz_togen(pageobj))); } } }