summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-09-23 12:06:48 +0000
committerTor Andersson <tor@ghostscript.com>2010-09-23 12:06:48 +0000
commit56e923d0efb8d1975715ed83fee44557eb5ea80f (patch)
treeb35ce98309d71f1980b30485ed3ced5dda6d5bf6
parent6c7eea10da1ef029d10c0db52b360d7dce506310 (diff)
downloadmupdf-56e923d0efb8d1975715ed83fee44557eb5ea80f.tar.xz
Respect Invisible, Hidden, NoView annotation flags.
-rw-r--r--mupdf/pdf_interpret.c11
1 files changed, 11 insertions, 0 deletions
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);