X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2Fswfoutput.cc;h=1c12e46a5dc0a7db68bc023227c900b1fa00cb15;hb=577e282e21131c72d58c7fad098a50beacdf5daa;hp=dea823bd29735b6423c77e6d14f5a67c60d20f73;hpb=d8ef6d637f0c716fcc65515de5d0a58fe13073c5;p=swftools.git diff --git a/pdf2swf/swfoutput.cc b/pdf2swf/swfoutput.cc index dea823b..1c12e46 100644 --- a/pdf2swf/swfoutput.cc +++ b/pdf2swf/swfoutput.cc @@ -97,8 +97,8 @@ typedef struct _swfoutput_internal int lastwasfill; int shapeisempty; char fill; - int max_x; - int max_y; + int min_x,max_x; + int min_y,max_y; TAG* cliptags[128]; int clipshapes[128]; U32 clipdepths[128]; @@ -1160,7 +1160,7 @@ static void endtext(swfoutput*obj) swf_SetRect(i->tag,&r); MATRIX m; - swf_GetMatrix(0, &m); + swf_GetMatrix(0, &m); /* set unit matrix- the real matrix is in the placeobject */ swf_SetMatrix(i->tag,&m); putcharacters(obj, i->tag); @@ -1507,6 +1507,8 @@ void swfoutput_newpage(struct swfoutput*obj, int pageNum, int movex, int movey, swf_PlaceObjectFree(&obj); } + i->min_x = x1; + i->min_y = y1; i->max_x = x2; i->max_y = y2; @@ -1718,8 +1720,15 @@ static void endshape(swfoutput*obj, int clipdepth) fixAreas(obj); if(i->shapeisempty || + /*bbox empty?*/ (i->bboxrect.xmin == i->bboxrect.xmax && - i->bboxrect.ymin == i->bboxrect.ymax)) + i->bboxrect.ymin == i->bboxrect.ymax) || + /*bbox outside page?*/ + (i->bboxrect.xmax <= i->min_x || + i->bboxrect.ymax <= i->min_y || + i->bboxrect.xmin >= i->max_x || + i->bboxrect.ymin >= i->max_y) + ) { // delete the shape again, we didn't do anything cancelshape(obj);