From 56e923d0efb8d1975715ed83fee44557eb5ea80f Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 23 Sep 2010 12:06:48 +0000 Subject: Respect Invisible, Hidden, NoView annotation flags. --- mupdf/pdf_interpret.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mupdf/pdf_interpret.c b/mupdf/pdf_interpret.c index 77aa7465..03e18bcf 100644 --- a/mupdf/pdf_interpret.c +++ b/mupdf/pdf_interpret.c @@ -1492,6 +1492,7 @@ pdf_runpage(pdf_xref *xref, pdf_page *page, fz_device *dev, fz_matrix ctm) fz_error error; pdf_annot *annot; fz_matrix atm; + int flags; if (page->transparency) dev->begingroup(dev->user, @@ -1509,6 +1510,16 @@ pdf_runpage(pdf_xref *xref, pdf_page *page, fz_device *dev, fz_matrix ctm) for (annot = page->annots; annot; annot = annot->next) { + flags = fz_toint(fz_dictgets(annot->obj, "F")); + + /* TODO: NoZoom and NoRotate */ + if (flags & (1 << 0)) /* Invisible */ + continue; + if (flags & (1 << 1)) /* Hidden */ + continue; + if (flags & (1 << 5)) /* NoView */ + continue; + atm = fz_concat(ctm, fz_translate(annot->rect.x0, annot->rect.y0)); csi = pdf_newcsi(xref, dev, atm); error = pdf_runxobject(csi, page->resources, annot->ap); -- cgit v1.2.3