diff options
Diffstat (limited to 'source/pdf')
-rw-r--r-- | source/pdf/pdf-interpret-imp.h | 2 | ||||
-rw-r--r-- | source/pdf/pdf-op-run.c | 7 |
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) |