static struct options_t options[] = {
{"h", "help"},
{"o", "output"},
+{"p", "pages"},
{"l", "legacy"},
{"V", "version"},
{"X", "width"},
static char*filename = 0;
static char*outputname = "output.png";
static int quantize = 0;
+static char*pagerange = 0;
static int width = 0;
static int height = 0;
} else if(!strcmp(name, "q")) {
quantize = 1;
return 0;
+ } else if(!strcmp(name, "p")) {
+ pagerange = val;
+ return 1;
} else if(!strcmp(name, "s")) {
char*s = strdup(val);
char*c = strchr(s, '=');
fi = open(filename, O_RDONLY|O_BINARY);
if (fi<=0) {
fprintf(stderr,"Couldn't open %s\n", filename);
- perror(argv[1]);
+ perror(filename);
exit(1);
}
if(swf_ReadSWF(fi,&swf)<0) {
fprintf(stderr,"%s is not a valid SWF file or contains errors.\n",argv[1]);
close(fi);
}
+ assert(swf.movieSize.xmax > swf.movieSize.xmin && swf.movieSize.ymax > swf.movieSize.ymin);
RENDERBUF buf;
swf_Render_Init(&buf, 0,0, (swf.movieSize.xmax - swf.movieSize.xmin) / 20,
(swf.movieSize.ymax - swf.movieSize.ymin) / 20, 2, 1);
gfxsource_t*src = gfxsource_swf_create();
for(p=params;p;p=p->next) {
- src->set_parameter(src, p->name, p->value);
+ src->setparameter(src, p->name, p->value);
}
gfxdocument_t*doc = src->open(src, filename);
for(p=params;p;p=p->next) {
- doc->set_parameter(doc, p->name, p->value);
+ doc->setparameter(doc, p->name, p->value);
}
if(!doc) {
fprintf(stderr,"Couldn't open %s\n", filename);
int t;
for(t=1;t<=doc->num_pages;t++) {
+ if(!is_in_range(t, pagerange))
+ continue;
gfxpage_t* page = doc->getpage(doc, t);
dev->startpage(dev, page->width, page->height);
page->render(page, dev);