summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-interpret-imp.h2
-rw-r--r--source/pdf/pdf-op-run.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/source/pdf/pdf-interpret-imp.h b/source/pdf/pdf-interpret-imp.h
index 817a7d2c..9c72bfe2 100644
--- a/source/pdf/pdf-interpret-imp.h
+++ b/source/pdf/pdf-interpret-imp.h
@@ -129,6 +129,8 @@ struct pdf_csi_s
int xbalance;
int in_text;
+ fz_rect d1_rect;
+
/* cookie support */
fz_cookie *cookie;
};
diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
index c09abb45..204d3c23 100644
--- a/source/pdf/pdf-op-run.c
+++ b/source/pdf/pdf-op-run.c
@@ -2367,7 +2367,7 @@ static void pdf_run_d1(pdf_csi *csi, void *state)
if (pr->nested_depth > 1)
return;
- pr->dev->flags |= FZ_DEVFLAG_MASK;
+ pr->dev->flags |= FZ_DEVFLAG_MASK | FZ_DEVFLAG_BBOX_DEFINED;
pr->dev->flags &= ~(FZ_DEVFLAG_FILLCOLOR_UNDEFINED |
FZ_DEVFLAG_STROKECOLOR_UNDEFINED |
FZ_DEVFLAG_STARTCAP_UNDEFINED |
@@ -2376,6 +2376,11 @@ static void pdf_run_d1(pdf_csi *csi, void *state)
FZ_DEVFLAG_LINEJOIN_UNDEFINED |
FZ_DEVFLAG_MITERLIMIT_UNDEFINED |
FZ_DEVFLAG_LINEWIDTH_UNDEFINED);
+
+ pr->dev->d1_rect.x0 = fz_min(csi->stack[2], csi->stack[4]);
+ pr->dev->d1_rect.y0 = fz_min(csi->stack[3], csi->stack[5]);
+ pr->dev->d1_rect.x1 = fz_max(csi->stack[2], csi->stack[4]);
+ pr->dev->d1_rect.y1 = fz_max(csi->stack[3], csi->stack[5]);
}
static void pdf_run_f(pdf_csi *csi, void *state)