X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=src%2Fpdf2swf.c;fp=src%2Fpdf2swf.c;h=8c4d8a5d6674eb7f68fc46793c43d8c2c1325b40;hp=a011db66293c191cd8047a81dd559ff288598d7b;hb=f9b025bc6ebfa93d38ea20ef69e0e65d7f2f257b;hpb=1ae58b8b15dee25f1915c344f4fdea9f9c3d41ea diff --git a/src/pdf2swf.c b/src/pdf2swf.c index a011db6..8c4d8a5 100644 --- a/src/pdf2swf.c +++ b/src/pdf2swf.c @@ -50,6 +50,8 @@ static gfxsource_t*driver = 0; static gfxdevice_t*out = 0; +static int maxwidth=0, maxheight=0; + static char * outputname = 0; static int loglevel = 3; static char * pagerange = 0; @@ -181,6 +183,16 @@ int args_callback_option(char*name,char*val) { ynup = 3; return 0; } + else if (!strcmp(name, "X")) + { + maxwidth = atoi(value); + return 1; + } + else if (!strcmp(name, "Y")) + { + maxheight = atoi(value); + return 1; + } else if (!strcmp(name, "q")) { loglevel --; @@ -468,6 +480,8 @@ static struct options_t options[] = { {"G", "flatten"}, {"I", "info"}, {"Q", "maxtime"}, +{"X", "width"}, +{"Y", "height"}, {0,0} }; @@ -572,15 +586,24 @@ void show_info(gfxsource_t*driver, char*filename) } -static gfxdevice_t swf,wrap; +static gfxdevice_t swf,wrap,rescale; gfxdevice_t*create_output_device() { gfxdevice_swf_init(&swf); - gfxdevice_removeclippings_init(&wrap, &swf); - out = &wrap; - if(!flatten) { - out = &swf; + + /* set up filter chain */ + + out = &swf; + if(flatten) { + gfxdevice_removeclippings_init(&wrap, &swf); + out = &wrap; } + + if(maxwidth || maxheight) { + gfxdevice_rescale_init(&rescale, out, maxwidth, maxheight); + out = &rescale; + } + /* pass global parameters to output device */ parameter_t*p = device_config; while(p) {