X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2Fswfoutput.cc;h=d6974b2857dd0529b0d5a2a8011a8ad1b0dbe533;hb=21e018742051f8a032fa50117ba5beb0668c25f0;hp=edb13a30108108ce59ecbac95ea54bede9f6ed68;hpb=a40c68187aa7e30d062e8c25d0c50045f4fa81e1;p=swftools.git diff --git a/pdf2swf/swfoutput.cc b/pdf2swf/swfoutput.cc index edb13a3..d6974b2 100644 --- a/pdf2swf/swfoutput.cc +++ b/pdf2swf/swfoutput.cc @@ -35,6 +35,7 @@ int ignoredraworder=0; int drawonlyshapes=0; int jpegquality=85; int storeallcharacters=0; +int enablezlib=0; static int flag_protected = 0; typedef unsigned char u8; @@ -489,10 +490,10 @@ void swfoutput_drawpath(swfoutput*output, T1_OUTLINE*outline, if(textid>=0) endtext(); - /* XXX the following is needed due to a bug in the SWF player. - Filled shapes consisting solely of curves don't get - filled correctly if they are in the same shape */ - if(shapeid>=0 && fill) { + /* Multiple polygons in one shape don't overlap correctly, + so we better start a new shape here if the polygon is filled + */ + if(shapeid>=0 && fill && !ignoredraworder) { endshape(); } @@ -1013,8 +1014,14 @@ void swfoutput_destroy(struct swfoutput* obj) tag = swf_InsertTag(tag,ST_END); - if FAILED(swf_WriteSWF(fi,&swf)) - logf(" WriteSWF() failed.\n"); + if(enablezlib) { + if FAILED(swf_WriteSWC(fi,&swf)) + logf(" WriteSWC() failed.\n"); + } else { + if FAILED(swf_WriteSWF(fi,&swf)) + logf(" WriteSWF() failed.\n"); + } + if(filename) close(fi); logf(" SWF written\n");