X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Fswf.c;h=01bac6a521731bc71d42484d605aa03270f2f9c4;hb=e0a702738ce558dd303389b345ec5349f39a5ccf;hp=32fca541666055e98ed3568123f5185358f47b37;hpb=72ec9e32258749cb564b71336c3bb368620239ba;p=swftools.git diff --git a/lib/devices/swf.c b/lib/devices/swf.c index 32fca54..01bac6a 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -98,6 +98,7 @@ typedef struct _swfoutput_internal int config_bboxvars; int config_disable_polygon_conversion; int config_normalize_polygon_positions; + char config_disablelinks; RGBA config_linkcolor; float config_minlinewidth; double config_caplinewidth; @@ -236,6 +237,7 @@ static swfoutput_internal* init_internal_struct() i->firstpage = 1; i->pagefinished = 1; + i->config_disablelinks=0; i->config_dumpfonts=0; i->config_ppmsubpixels=0; i->config_jpegsubpixels=0; @@ -1559,6 +1561,9 @@ void swf_drawlink(gfxdevice_t*dev, gfxline_t*points, const char*url) { swfoutput_internal*i = (swfoutput_internal*)dev->internal; + if(i->config_disablelinks) + return; + if(!strncmp("http://pdf2swf:", url, 15)) { char*tmp = strdup(url); int l = strlen(tmp); @@ -1589,6 +1594,8 @@ void swfoutput_linktourl(gfxdevice_t*dev, const char*url, gfxline_t*points) endshape(dev); if(i->textid>=0) endtext(dev); + + /* TODO: escape special characters in url */ if(i->config_externallinkfunction && i->config_flashversion<=8) { actions = action_PushString(actions, url); //parameter @@ -1975,6 +1982,8 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) i->config_dumpfonts = atoi(value); } else if(!strcmp(name, "animate")) { i->config_animate = atoi(value); + } else if(!strcmp(name, "disablelinks")) { + i->config_disablelinks = atoi(value); } else if(!strcmp(name, "simpleviewer")) { i->config_simpleviewer = atoi(value); } else if(!strcmp(name, "next_bitmap_is_jpeg")) { @@ -2032,6 +2041,7 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) printf("animate insert a showframe tag after each placeobject (animate draw order of PDF files)\n"); printf("jpegquality= set compression quality of jpeg images\n"); printf("splinequality= Set the quality of spline convertion to value (0-100, default: 100).\n"); + printf("disablelinks Disable links.\n"); } else { return 0; } @@ -2840,6 +2850,16 @@ static void swf_drawchar(gfxdevice_t*dev, gfxfont_t*font, int glyph, gfxcolor_t* msg(" swf_drawchar called (glyph %d) without font", glyph); return; } + + if(i->config_drawonlyshapes) { + gfxglyph_t*g = &font->glyphs[glyph]; + gfxline_t*line2 = gfxline_clone(g->line); + gfxline_transform(line2, matrix); + dev->fill(dev, line2, color); + gfxline_free(line2); + return; + } + if(!i->swffont || !i->swffont->name || strcmp((char*)i->swffont->name,font->id)) // not equal to current font { /* TODO: remove the need for this (enhance getcharacterbbox so that it can cope