X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FGFXOutputDev.cc;h=ef2dde37044a460cef5fd392a68b37a557e174c5;hb=20f395856f21739e79eeab275beec7a3d133d568;hp=635d10d5c3c2f9d2e5ea4641bddbe7e980f8b900;hpb=4454f6b665f2f14d0107a0144be947d95a252f8e;p=swftools.git diff --git a/lib/pdf/GFXOutputDev.cc b/lib/pdf/GFXOutputDev.cc index 635d10d..ef2dde3 100644 --- a/lib/pdf/GFXOutputDev.cc +++ b/lib/pdf/GFXOutputDev.cc @@ -105,6 +105,7 @@ struct fontentry { char*pfb; int pfblen; char*fullfilename; + DisplayFontParam *dfp; } pdf2t1map[] ={ {"Times-Roman", "n021003l", n021003l_afm, n021003l_afm_len, n021003l_pfb, n021003l_pfb_len}, {"Times-Italic", "n021023l", n021023l_afm, n021023l_afm_len, n021023l_pfb, n021023l_pfb_len}, @@ -564,10 +565,11 @@ DisplayFontParam *GFXGlobalParams::getDisplayFont(GString *fontName) } else { msg(" Storing standard PDF font %s at %s", name, pdf2t1map[t].fullfilename); } + DisplayFontParam *dfp = new DisplayFontParam(new GString(fontName), displayFontT1); + dfp->t1.fileName = new GString(pdf2t1map[t].fullfilename); + pdf2t1map[t].dfp = dfp; } - DisplayFontParam *dfp = new DisplayFontParam(new GString(fontName), displayFontT1); - dfp->t1.fileName = new GString(pdf2t1map[t].fullfilename); - return dfp; + return pdf2t1map[t].dfp; } } @@ -1624,7 +1626,7 @@ void GFXOutputDev::endType3Char(GfxState *state) msg(" endType3Char"); } -void GFXOutputDev::startPage(int pageNum, GfxState *state, double crop_x1, double crop_y1, double crop_x2, double crop_y2) +void GFXOutputDev::startPage(int pageNum, GfxState *state) { this->currentpage = pageNum; double x1,y1,x2,y2; @@ -1633,6 +1635,7 @@ void GFXOutputDev::startPage(int pageNum, GfxState *state, double crop_x1, doubl gfxcolor_t black = {255,0,0,0}; laststate = state; gfxline_t clippath[5]; + PDFRectangle *r = this->page->getCropBox(); /* state->transform(state->getX1(),state->getY1(),&x1,&y1); state->transform(state->getX2(),state->getY2(),&x2,&y2); @@ -1643,8 +1646,8 @@ void GFXOutputDev::startPage(int pageNum, GfxState *state, double crop_x1, doubl y1 = crop_y1; x2 = crop_x2; y2 = crop_y2;*/ - state->transform(crop_x1,crop_y1,&x1,&y1); //x1 += user_movex; y1 += user_movey; - state->transform(crop_x2,crop_y2,&x2,&y2); //x2 += user_movex; y2 += user_movey; + state->transform(r->x1,r->y1,&x1,&y1); //x1 += user_movex; y1 += user_movey; + state->transform(r->x2,r->y2,&x2,&y2); //x2 += user_movex; y2 += user_movey; if(x2device=%p, this->device->name=%s\n", this->device, this->device->name); gfxdevice_ops_init(&ops, this->device, alpha); - gfxresult_record_replay(grouprecording, &ops); + gfxresult_record_replay(grouprecording, &ops, 0); ops.finish(&ops); } grouprecording->destroy(grouprecording); @@ -2824,15 +2827,15 @@ void GFXOutputDev::clearSoftMask(GfxState *state) /* get outline of all objects below the soft mask */ gfxdevice_t uniondev; gfxdevice_union_init(&uniondev, 0); - gfxresult_record_replay(below, &uniondev); + gfxresult_record_replay(below, &uniondev, 0); gfxline_t*belowoutline = gfxdevice_union_getunion(&uniondev); uniondev.finish(&uniondev); gfxbbox_t bbox = gfxline_getbbox(belowoutline); gfxline_free(belowoutline);belowoutline=0; #if 0 this->device->startclip(this->device, belowoutline); - gfxresult_record_replay(below, this->device); - gfxresult_record_replay(mask, this->device); + gfxresult_record_replay(below, this->device, 0); + gfxresult_record_replay(mask, this->device, 0); this->device->endclip(this->device); #endif @@ -2847,7 +2850,7 @@ void GFXOutputDev::clearSoftMask(GfxState *state) } belowrender.setparameter(&belowrender, "antialize", "2"); belowrender.startpage(&belowrender, width, height); - gfxresult_record_replay(below, &belowrender); + gfxresult_record_replay(below, &belowrender, 0); belowrender.endpage(&belowrender); gfxresult_t* belowresult = belowrender.finish(&belowrender); gfximage_t* belowimg = (gfximage_t*)belowresult->get(belowresult,"page0"); @@ -2856,7 +2859,7 @@ void GFXOutputDev::clearSoftMask(GfxState *state) gfxdevice_t maskrender; gfxdevice_render_init(&maskrender); maskrender.startpage(&maskrender, width, height); - gfxresult_record_replay(mask, &maskrender); + gfxresult_record_replay(mask, &maskrender, 0); maskrender.endpage(&maskrender); gfxresult_t* maskresult = maskrender.finish(&maskrender); gfximage_t* maskimg = (gfximage_t*)maskresult->get(maskresult,"page0");