X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FBitmapOutputDev.cc;h=19a52f38f26bddaca44faab231d3b91dff855b72;hb=249492ffdbe53add7acd2fdb75f8d9ea92510db3;hp=6ed165d0ca3c31f9be1e93c3ef933306eb423362;hpb=c2a1de276f2c4e97ce8e017fab038e99bcea72aa;p=swftools.git diff --git a/lib/pdf/BitmapOutputDev.cc b/lib/pdf/BitmapOutputDev.cc index 6ed165d..19a52f3 100644 --- a/lib/pdf/BitmapOutputDev.cc +++ b/lib/pdf/BitmapOutputDev.cc @@ -29,6 +29,7 @@ #include "../log.h" #include "../png.h" #include "../devices/record.h" +#include "../types.h" #define UNKNOWN_BOUNDING_BOX 0,0,0,0 @@ -269,6 +270,8 @@ void BitmapOutputDev::flushBitmap() m.ty = ymin; m.m00 = m.m11 = 1; m.m10 = m.m01 = 0; + m.tx -= 0.5; + m.ty -= 0.5; gfxline_t* line = gfxline_makerectangle(xmin, ymin, xmax, ymax); dev->fillbitmap(dev, line, img, &m, 0); @@ -602,7 +605,7 @@ GBool BitmapOutputDev::intersection(int x1, int y1, int x2, int y2) unsigned long long int c=0; assert(sizeof(unsigned long long int)==8); { - if(((int)polypixels&7) || ((int)textpixels&7)) { + if(((ptroff_t)polypixels&7) || ((ptroff_t)textpixels&7)) { //msg(" Non-optimal alignment"); } int l2 = len; @@ -1262,6 +1265,11 @@ void BitmapOutputDev::drawChar(GfxState *state, double x, double y, /* calculate the bbox of this character */ int x1 = (int)x, x2 = (int)x+1, y1 = (int)y, y2 = (int)y+1; SplashPath*path = clip0dev->getCurrentFont()->getGlyphPath(code); + if(!path) { + if(code) + msg(" couldn't create outline for char %d", code); + return; + } int t; for(t=0;tgetLength();t++) { double xx,yy;