X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FGFXOutputDev.cc;h=9c8b9c7bf5f8237c0862217c75559dbb2e984e41;hb=ab2f7a4cd0eda09ff3af29058c45d098f869b598;hp=93eda131034ede986de2636b3eeb0b63cdbc3bfb;hpb=e8732af08c0ea32ee3b0292c28bba6fd4c1de91a;p=swftools.git diff --git a/lib/pdf/GFXOutputDev.cc b/lib/pdf/GFXOutputDev.cc index 93eda13..9c8b9c7 100644 --- a/lib/pdf/GFXOutputDev.cc +++ b/lib/pdf/GFXOutputDev.cc @@ -1328,7 +1328,6 @@ void GFXOutputDev::beginString(GfxState *state, GString *s) if(current_text_stroke) { msg(" Error: Incompatible change of text rendering to %d while inside cliptext", render); } - msg(" beginString(%s) render=%d", makeStringPrintable(s->getCString()), render); } @@ -1363,7 +1362,7 @@ void GFXOutputDev::drawChar(GfxState *state, double x, double y, // check for invisible text -- this is used by Acrobat Capture if (render == RENDER_INVISIBLE) { - col.a = 255; + col.a = 0; if(!config_extrafontdata) return; } @@ -1377,11 +1376,12 @@ void GFXOutputDev::drawChar(GfxState *state, double x, double y, } Unicode u = uLen?(_u[0]):0; - msg(" drawChar(%f,%f,c='%c' (%d), u=%d <%d>) CID=%d render=%d glyphid=%d font=%08x",x,y,(charid&127)>=32?charid:'?', charid, u, uLen, font->isCIDFont(), render, glyphid, current_gfxfont); gfxmatrix_t m = this->current_font_matrix; this->transformXY(state, x-originX, y-originY, &m.tx, &m.ty); //m.tx += originX; m.ty += originY; + + msg(" drawChar(%f,%f,c='%c' (%d), u=%d <%d>) CID=%d render=%d glyphid=%d font=%08x",m.tx,m.ty,(charid&127)>=32?charid:'?', charid, u, uLen, font->isCIDFont(), render, glyphid, current_gfxfont); if(render == RENDER_FILL || render == RENDER_INVISIBLE) { device->drawchar(device, current_gfxfont, glyphid, &col, &m); @@ -1539,6 +1539,11 @@ void GFXOutputDev::startPage(int pageNum, GfxState *state, double crop_x1, doubl /*if(user_clipy1 > y1)*/ y1 = user_clipy1; /*if(user_clipy2 < y2)*/ y2 = user_clipy2; msg(" Using user clip box %f/%f/%f/%f",x1,y1,x2,y2); + } else { + x1 += this->clipmovex; + y1 += this->clipmovey; + x2 += this->clipmovex; + y2 += this->clipmovey; } //msg(" Bounding box is (%f,%f)-(%f,%f) [shifted by %d/%d]", x1,y1,x2,y2, user_movex, user_movey); @@ -1627,7 +1632,8 @@ void GFXOutputDev::processLink(Link *link, Catalog *catalog) LinkDest *dest=NULL; if (ha->getDest()==NULL) dest=catalog->findDest(ha->getNamedDest()); - else dest=ha->getDest(); + else + dest=ha->getDest()->copy(); if (dest){ if (dest->isPageRef()){ Ref pageref=dest->getPageRef(); @@ -1636,6 +1642,7 @@ void GFXOutputDev::processLink(Link *link, Catalog *catalog) else page=dest->getPageNum(); sprintf(buf, "%d", page); s = strdup(buf); + delete dest; } } break;