X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fpdf%2FBitmapOutputDev.cc;h=7141e5a455095bdff007055661873c09d937ddff;hp=1abd91f6589b80880ddea23fa4d253f605125e9e;hb=3828ad1eb96fa48bcb289c566b221a7bbd5ea558;hpb=c34a9e0500bc5141864683ff548b8979f611747b diff --git a/lib/pdf/BitmapOutputDev.cc b/lib/pdf/BitmapOutputDev.cc index 1abd91f..7141e5a 100644 --- a/lib/pdf/BitmapOutputDev.cc +++ b/lib/pdf/BitmapOutputDev.cc @@ -497,9 +497,9 @@ GBool BitmapOutputDev::checkNewText(int x1, int y1, int x2, int y2) char filename1[80]; char filename2[80]; char filename3[80]; - sprintf(filename1, "state%dboolbitmap_afternewtext.png", dbg_btm_counter); - sprintf(filename2, "state%dbooltext_afternewtext.png", dbg_btm_counter); - sprintf(filename3, "state%dbitmap_afternewtext.png", dbg_btm_counter); + sprintf(filename1, "state%03dboolbitmap_afternewtext.png", dbg_btm_counter); + sprintf(filename2, "state%03dbooltext_afternewtext.png", dbg_btm_counter); + sprintf(filename3, "state%03dbitmap_afternewtext.png", dbg_btm_counter); msg(" %s %s %s", filename1, filename2, filename3); writeAlpha(stalepolybitmap, filename1); writeAlpha(booltextbitmap, filename2); @@ -553,9 +553,9 @@ GBool BitmapOutputDev::checkNewBitmap(int x1, int y1, int x2, int y2) char filename1[80]; char filename2[80]; char filename3[80]; - sprintf(filename1, "state%dboolbitmap_afternewgfx.png", dbg_btm_counter); - sprintf(filename2, "state%dbooltext_afternewgfx.png", dbg_btm_counter); - sprintf(filename3, "state%dbitmap_afternewgfx.png", dbg_btm_counter); + sprintf(filename1, "state%03dboolbitmap_afternewgfx.png", dbg_btm_counter); + sprintf(filename2, "state%03dbooltext_afternewgfx.png", dbg_btm_counter); + sprintf(filename3, "state%03dbitmap_afternewgfx.png", dbg_btm_counter); msg(" %s %s %s", filename1, filename2, filename3); writeAlpha(stalepolybitmap, filename1); writeAlpha(booltextbitmap, filename2); @@ -1445,27 +1445,23 @@ void BitmapOutputDev::drawChar(GfxState *state, double x, double y, int x1 = (int)x, x2 = (int)x+1, y1 = (int)y, y2 = (int)y+1; SplashFont*font = clip0dev->getCurrentFont(); SplashPath*path = font?font->getGlyphPath(code):NULL; - - if(!path) { - if(code) - msg(" couldn't create outline for char %d", code); - return; - } x-=originX; y-=originY; - path->offset((SplashCoord)x, (SplashCoord)y); - int t; - for(t=0;tgetLength();t++) { - double xx,yy; - Guchar f; - path->getPoint(t,&xx,&yy,&f); - state->transform(xx,yy,&xx,&yy); - if(xx=x2) x2=(int)xx+1; - if(yy>=y2) y2=(int)yy+1; + if(path) { + path->offset((SplashCoord)x, (SplashCoord)y); + int t; + for(t=0;tgetLength();t++) { + double xx,yy; + Guchar f; + path->getPoint(t,&xx,&yy,&f); + state->transform(xx,yy,&xx,&yy); + if(xx=x2) x2=(int)xx+1; + if(yy>=y2) y2=(int)yy+1; + } + delete(path);path=0; } - delete(path);path=0; /* if this character is affected somehow by the various clippings (i.e., it looks different on a device without clipping), then draw it on the bitmap, not as @@ -1593,22 +1589,22 @@ gfxbbox_t BitmapOutputDev::getImageBBox(GfxState*state) double x,y; state->transform(0, 1, &x, &y); bbox.xmin=bbox.xmax = x; - bbox.ymin=bbox.ymax = x; + bbox.ymin=bbox.ymax = y; state->transform(0, 0, &x, &y); bbox.xmin=min(bbox.xmin,x); bbox.ymin=min(bbox.ymin,y); - bbox.xmax=max(bbox.xmin,x); - bbox.ymax=max(bbox.ymin,y); + bbox.xmax=max(bbox.xmax,x); + bbox.ymax=max(bbox.ymax,y); state->transform(1, 0, &x, &y); bbox.xmin=min(bbox.xmin,x); bbox.ymin=min(bbox.ymin,y); - bbox.xmax=max(bbox.xmin,x); - bbox.ymax=max(bbox.ymin,y); + bbox.xmax=max(bbox.xmax,x); + bbox.ymax=max(bbox.ymax,y); state->transform(1, 1, &x, &y); bbox.xmin=min(bbox.xmin,x); bbox.ymin=min(bbox.ymin,y); - bbox.xmax=max(bbox.xmin,x); - bbox.ymax=max(bbox.ymin,y); + bbox.xmax=max(bbox.xmax,x); + bbox.ymax=max(bbox.ymax,y); return bbox; } void BitmapOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str,