X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2Fswfoutput.cc;h=8eaacd349f7704378f5392c4a20e2dd1d2d81a72;hb=3cdc844531091d6e19ae9d973c8b8de311ebff85;hp=569aef00c8fc3a39d96eb5a06f7f3e3abfe22cc7;hpb=9765f3a480506eea5247a0801d21976e2b32c1e1;p=swftools.git diff --git a/pdf2swf/swfoutput.cc b/pdf2swf/swfoutput.cc index 569aef0..8eaacd3 100644 --- a/pdf2swf/swfoutput.cc +++ b/pdf2swf/swfoutput.cc @@ -88,6 +88,7 @@ typedef struct _swfoutput_internal int config_bboxvars; float config_minlinewidth; double config_caplinewidth; + char* config_linktarget; SWF* swf; @@ -225,6 +226,7 @@ static swfoutput_internal* init_internal_struct() i->config_bboxvars=0; i->config_minlinewidth=0.05; i->config_caplinewidth=1; + i->config_linktarget=0; return i; }; @@ -1240,6 +1242,11 @@ gfxresult_t* swf_finish(gfxdevice_t* dev) swfoutput_internal*i = (swfoutput_internal*)dev->internal; gfxresult_t*result; + if(i->config_linktarget) { + free(i->config_linktarget); + i->config_linktarget = 0; + } + swfoutput_finalize(dev); SWF* swf = i->swf;i->swf = 0; swfoutput_destroy(dev); @@ -1309,14 +1316,17 @@ static void swfoutput_setstrokecolor(gfxdevice_t* dev, U8 r, U8 g, U8 b, U8 a) i->strokergb.a = a; } +//#define ROUND_UP 19 +//#define ROUND_UP 10 + static void swfoutput_setlinewidth(gfxdevice_t*dev, double _linewidth) { swfoutput_internal*i = (swfoutput_internal*)dev->internal; - if(i->linewidth == (U16)(_linewidth*20+19)) + if(i->linewidth == (U16)(_linewidth*20+19.0/20.0)) return; if(i->shapeid>=0) endshape(dev); - i->linewidth = (U16)(_linewidth*20+19); + i->linewidth = (U16)(_linewidth*20+19.0/20.0); } @@ -1365,11 +1375,15 @@ void swfoutput_linktourl(gfxdevice_t*dev, char*url, gfxline_t*points) endshape(dev); if(i->textid>=0) endtext(dev); - - if(!i->config_opennewwindow) - actions = action_GetUrl(0, url, "_parent"); - else - actions = action_GetUrl(0, url, "_this"); + + if(!i->config_linktarget) { + if(!i->config_opennewwindow) + actions = action_GetUrl(0, url, "_parent"); + else + actions = action_GetUrl(0, url, "_this"); + } else { + actions = action_GetUrl(0, url, i->config_linktarget); + } actions = action_End(actions); drawlink(dev, actions, 0, points,0); @@ -1673,6 +1687,8 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) i->config_minlinewidth = atof(value); } else if(!strcmp(name, "caplinewidth")) { i->config_caplinewidth = atof(value); + } else if(!strcmp(name, "linktarget")) { + i->config_linktarget = strdup(value); } else if(!strcmp(name, "dumpfonts")) { i->config_dumpfonts = atoi(value); } else if(!strcmp(name, "next_bitmap_is_jpeg")) {