X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=src%2Fpdf2swf.c;h=c7a804ee64f00aa7f3fbabe874f5e0e4739c359e;hp=0e9e3e5da22a342a115fb74ddf5f924759343cee;hb=a725c3e28bafaf52cc45bdacf730b80edd83756d;hpb=e4687b3aa2aed49fb16ba9e9561344d808750297 diff --git a/src/pdf2swf.c b/src/pdf2swf.c index 0e9e3e5..c7a804e 100644 --- a/src/pdf2swf.c +++ b/src/pdf2swf.c @@ -43,6 +43,7 @@ #include "../lib/devices/polyops.h" #include "../lib/devices/record.h" #include "../lib/devices/rescale.h" +#include "../lib/gfxfilter.h" #include "../lib/pdf/pdf.h" #include "../lib/log.h" @@ -266,7 +267,7 @@ int args_callback_option(char*name,char*val) { } else if(!strcmp(s,"help")) { printf("PDF Parameters:\n"); gfxsource_t*pdf = gfxsource_pdf_create(); - pdf->set_parameter(pdf, "help", ""); + pdf->setparameter(pdf, "help", ""); gfxdevice_t swf; gfxdevice_swf_init(&swf); printf("SWF Parameters:\n"); @@ -630,7 +631,7 @@ int main(int argn, char *argv[]) /* pass global parameters to PDF driver*/ parameter_t*p = device_config; while(p) { - driver->set_parameter(driver, p->name, p->value); + driver->setparameter(driver, p->name, p->value); p = p->next; } @@ -640,45 +641,47 @@ int main(int argn, char *argv[]) exit(1); } - if(info_only) { - show_info(driver, filename); - return 0; - } - - if(!outputname) - { - if(filename) { - outputname = stripFilename(filename, ".swf"); - msg(" Output filename not given. Writing to %s", outputname); - } - } - - if(!outputname) - { - fprintf(stderr, "Please use -o to specify an output file\n"); - exit(1); + if (!info_only) { + if(!outputname) + { + if(filename) { + outputname = stripFilename(filename, ".swf"); + msg(" Output filename not given. Writing to %s", outputname); + } + } + + if(!outputname) + { + fprintf(stderr, "Please use -o to specify an output file\n"); + exit(1); + } } // test if the page range is o.k. is_in_range(0x7fffffff, pagerange); - if(pagerange) - driver->set_parameter(driver, "pages", pagerange); - if (!filename) { args_callback_usage(argv[0]); exit(0); } + + char fullname[256]; + if(password && *password) { + sprintf(fullname, "%s|%s", filename, password); + filename = fullname; + } + + if(pagerange) + driver->setparameter(driver, "pages", pagerange); /* add fonts */ for(t=0;tset_parameter(driver, "fontdir", fontpaths[t]); + driver->setparameter(driver, "fontdir", fontpaths[t]); } - char fullname[256]; - if(password && *password) { - sprintf(fullname, "%s|%s", filename, password); - filename = fullname; + if(info_only) { + show_info(driver, filename); + return 0; } char*u = 0; @@ -711,7 +714,7 @@ int main(int argn, char *argv[]) /* pass global parameters document */ p = device_config; while(p) { - pdf->set_parameter(pdf, p->name, p->value); + pdf->setparameter(pdf, p->name, p->value); p = p->next; } @@ -730,7 +733,7 @@ int main(int argn, char *argv[]) if(is_in_range(pagenr, pagerange)) { char mapping[80]; sprintf(mapping, "%d:%d", pagenr, frame); - pdf->set_parameter(pdf, "pagemap", mapping); + pdf->setparameter(pdf, "pagemap", mapping); pagenum++; } if(pagenum == xnup*ynup || (pagenr == pdf->num_pages && pagenum>1)) { @@ -738,10 +741,16 @@ int main(int argn, char *argv[]) frame++; } } + if(pagerange && !pagenum && frame==1) { + fprintf(stderr, "No pages in range %s", pagerange); + exit(1); + } pagenum = 0; gfxdevice_t*out = create_output_device();; + pdf->prepare(pdf, out); + for(pagenr = 1; pagenr <= pdf->num_pages; pagenr++) { if(is_in_range(pagenr, pagerange)) {