git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
switched to new dict impl, made some char pointers const
[swftools.git]
/
src
/
pdf2swf.c
diff --git
a/src/pdf2swf.c
b/src/pdf2swf.c
index
517f048
..
e68bb7c
100644
(file)
--- a/
src/pdf2swf.c
+++ b/
src/pdf2swf.c
@@
-42,6
+42,7
@@
#include "../lib/devices/swf.h"
#include "../lib/devices/polyops.h"
#include "../lib/devices/record.h"
#include "../lib/devices/swf.h"
#include "../lib/devices/polyops.h"
#include "../lib/devices/record.h"
+#include "../lib/devices/rescale.h"
#include "../lib/pdf/pdf.h"
#include "../lib/log.h"
#include "../lib/pdf/pdf.h"
#include "../lib/log.h"
@@
-50,6
+51,8
@@
static gfxsource_t*driver = 0;
static gfxdevice_t*out = 0;
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;
static char * outputname = 0;
static int loglevel = 3;
static char * pagerange = 0;
@@
-137,7
+140,7
@@
static void store_parameter(const char*name, const char*value)
}
o = o->next;
}
}
o = o->next;
}
- parameter_t*p = malloc(sizeof(parameter_t));
+ parameter_t*p = (parameter_t*)malloc(sizeof(parameter_t));
p->name = strdup(name);
p->value = strdup(value);
p->next = 0;
p->name = strdup(name);
p->value = strdup(value);
p->next = 0;
@@
-181,6
+184,16
@@
int args_callback_option(char*name,char*val) {
ynup = 3;
return 0;
}
ynup = 3;
return 0;
}
+ else if (!strcmp(name, "X"))
+ {
+ maxwidth = atoi(val);
+ return 1;
+ }
+ else if (!strcmp(name, "Y"))
+ {
+ maxheight = atoi(val);
+ return 1;
+ }
else if (!strcmp(name, "q"))
{
loglevel --;
else if (!strcmp(name, "q"))
{
loglevel --;
@@
-250,9
+263,9
@@
int args_callback_option(char*name,char*val) {
*c = 0;
c++;
store_parameter(s,c);
*c = 0;
c++;
store_parameter(s,c);
- } else if(strcmp(s,"help")) {
+ } else if(!strcmp(s,"help")) {
printf("PDF Parameters:\n");
printf("PDF Parameters:\n");
- gfxsource_t*pdf = gfxsource_pdf_create(&pdf);
+ gfxsource_t*pdf = gfxsource_pdf_create();
pdf->set_parameter(pdf, "help", "");
gfxdevice_t swf;
gfxdevice_swf_init(&swf);
pdf->set_parameter(pdf, "help", "");
gfxdevice_t swf;
gfxdevice_swf_init(&swf);
@@
-266,12
+279,12
@@
int args_callback_option(char*name,char*val) {
}
else if (!strcmp(name, "S"))
{
}
else if (!strcmp(name, "S"))
{
- driver->set_parameter(driver, "drawonlyshapes", "1");
+ store_parameter("drawonlyshapes", "1");
return 0;
}
else if (!strcmp(name, "i"))
{
return 0;
}
else if (!strcmp(name, "i"))
{
- driver->set_parameter(driver, "ignoredraworder", "1");
+ store_parameter("ignoredraworder", "1");
return 0;
}
#ifndef WIN32
return 0;
}
#ifndef WIN32
@@
-287,13
+300,13
@@
int args_callback_option(char*name,char*val) {
#endif
else if (!strcmp(name, "z"))
{
#endif
else if (!strcmp(name, "z"))
{
- driver->set_parameter(driver, "enablezlib", "1");
+ store_parameter("enablezlib", "1");
zlib = 1;
return 0;
}
else if (!strcmp(name, "n"))
{
zlib = 1;
return 0;
}
else if (!strcmp(name, "n"))
{
- driver->set_parameter(driver, "opennewwindow", "1");
+ store_parameter("opennewwindow", "1");
return 0;
}
else if (!strcmp(name, "I"))
return 0;
}
else if (!strcmp(name, "I"))
@@
-303,27
+316,27
@@
int args_callback_option(char*name,char*val) {
}
else if (!strcmp(name, "t"))
{
}
else if (!strcmp(name, "t"))
{
- driver->set_parameter(driver, "insertstop", "1");
+ store_parameter("insertstop", "1");
return 0;
}
else if (!strcmp(name, "T"))
{
if(!strcasecmp(val, "mx"))
return 0;
}
else if (!strcmp(name, "T"))
{
if(!strcasecmp(val, "mx"))
- driver->set_parameter(driver, "flashversion", "6");
+ store_parameter("flashversion", "6");
else
else
- driver->set_parameter(driver, "flashversion", val);
+ store_parameter("flashversion", val);
return 1;
}
else if (!strcmp(name, "f"))
{
return 1;
}
else if (!strcmp(name, "f"))
{
- driver->set_parameter(driver, "storeallcharacters", "1");
- driver->set_parameter(driver, "extrafontdata", "1");
+ store_parameter("storeallcharacters", "1");
+ store_parameter("extrafontdata", "1");
return 0;
}
else if (!strcmp(name, "w"))
{
return 0;
}
else if (!strcmp(name, "w"))
{
- driver->set_parameter(driver, "linksopennewwindow", "0");
+ store_parameter("linksopennewwindow", "0");
return 0;
}
else if (!strcmp(name, "O"))
return 0;
}
else if (!strcmp(name, "O"))
@@
-335,16
+348,16
@@
int args_callback_option(char*name,char*val) {
ret=1;
}
if(level>=1)
ret=1;
}
if(level>=1)
- driver->set_parameter(driver, "poly2bitmap", "1");
+ store_parameter("poly2bitmap", "1");
if(level>=2)
if(level>=2)
- driver->set_parameter(driver, "bitmapfonts", "1");
+ store_parameter("bitmapfonts", "1");
if(level>=3)
if(level>=3)
- driver->set_parameter(driver, "ignoredraworder", "1");
+ store_parameter("ignoredraworder", "1");
return ret;
}
else if (!strcmp(name, "G"))
{
return ret;
}
else if (!strcmp(name, "G"))
{
- //driver->set_parameter(driver, "optimize_polygons", "1");
+ //store_parameter("optimize_polygons", "1");
flatten = 1;
return 0;
}
flatten = 1;
return 0;
}
@@
-406,10
+419,10
@@
int args_callback_option(char*name,char*val) {
else if (!strcmp(name, "j"))
{
if(name[1]) {
else if (!strcmp(name, "j"))
{
if(name[1]) {
- driver->set_parameter(driver, "jpegquality", &name[1]);
+ store_parameter("jpegquality", &name[1]);
return 0;
} else {
return 0;
} else {
- driver->set_parameter(driver, "jpegquality", val);
+ store_parameter("jpegquality", val);
return 1;
}
}
return 1;
}
}
@@
-468,6
+481,8
@@
static struct options_t options[] = {
{"G", "flatten"},
{"I", "info"},
{"Q", "maxtime"},
{"G", "flatten"},
{"I", "info"},
{"Q", "maxtime"},
+{"X", "width"},
+{"Y", "height"},
{0,0}
};
{0,0}
};
@@
-572,15
+587,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_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, 0);
+ out = &rescale;
+ }
+
/* pass global parameters to output device */
parameter_t*p = device_config;
while(p) {
/* pass global parameters to output device */
parameter_t*p = device_config;
while(p) {
@@
-600,7
+624,7
@@
int main(int argn, char *argv[])
int nup_pos = 0;
int x,y;
char* installPath = getInstallationPath();
int nup_pos = 0;
int x,y;
char* installPath = getInstallationPath();
- char one_file_per_page = 0;
+ int one_file_per_page = 0;
initLog(0,-1,0,0,-1,loglevel);
initLog(0,-1,0,0,-1,loglevel);
@@
-679,16
+703,16
@@
int main(int argn, char *argv[])
if((u = strchr(outputname, '%'))) {
if(strchr(u+1, '%') ||
strchr(outputname, '%')!=u) {
if((u = strchr(outputname, '%'))) {
if(strchr(u+1, '%') ||
strchr(outputname, '%')!=u) {
- msg("<error> only one %%d allowed in filename\n");
+ msg("<error> only one %% allowed in filename\n");
return 1;
}
if(preloader || viewer) {
return 1;
}
if(preloader || viewer) {
- msg("<error> -b/-l/-B/-L not supported together with %%d in filename\n");
+ msg("<error> -b/-l/-B/-L not supported together with %% in filename\n");
return 1;
}
msg("<notice> outputting one file per page");
one_file_per_page = 1;
return 1;
}
msg("<notice> outputting one file per page");
one_file_per_page = 1;
- char*pattern = malloc(strlen(outputname)+2);
+ char*pattern = (char*)malloc(strlen(outputname)+2);
/* convert % to %d */
int l = u-outputname+1;
memcpy(pattern, outputname, l);
/* convert % to %d */
int l = u-outputname+1;
memcpy(pattern, outputname, l);