#include <string.h>
#include <unistd.h>
#include "../config.h"
-#include "args.h"
+#include "../lib/args.h"
#include "pdfswf.h"
#include "t1lib.h"
extern "C" {
password = val;
return 1;
}
+ else if (!strcmp(name, "s"))
+ {
+ pdfswf_drawonlyshapes();
+ return 0;
+ }
+ else if (!strcmp(name, "i"))
+ {
+ pdfswf_ignoredraworder();
+ return 0;
+ }
+ else if (!strcmp(name, "n"))
+ {
+ pdfswf_linksopennewwindow();
+ return 0;
+ }
+ else if (!strcmp(name, "f"))
+ {
+ pdfswf_storeallcharacters();
+ return 0;
+ }
+ else if (name[0]=='j')
+ {
+ if(name[1]) {
+ pdfswf_jpegquality(atoi(&name[1]));
+ return 0;
+ } else {
+ pdfswf_jpegquality(atoi(val));
+ return 1;
+ }
+ }
else if (!strcmp(name, "V"))
{
printf("pdf2swf - part of %s %s\n", PACKAGE, VERSION);
return 0;
}
-struct options_t
-{
- char shortoption;
- char*longoption;
-} options[] =
-{{'o',"output"},
- {'V',"version"},
- {'p',"pages"}
+struct options_t options[] =
+{{"o","output"},
+ {"V","version"},
+ {"i","ignore"},
+ {"s","shapes"},
+ {"j","jpegquality"},
+ {"p","pages"},
+ {"w","samewindow"},
+ {"f","fonts"},
+ {0,0}
};
int args_callback_longoption(char*name,char*val) {
- int t;
- char*equal = strchr(name,'=');
- if (equal) {
- *equal = 0;
- equal++;
- }
- for(t=0;t<sizeof(options)/sizeof(struct options_t);t++) {
- if(!strcmp(options[t].longoption, name)) {
- char*tmp = (char*)malloc(strlen(equal)+strlen(name)+2);
- tmp[0] = options[t].shortoption;
- tmp[1] = 0;
- if(equal) {
- strcpy(&tmp[1], equal);
- }
- return args_callback_option(tmp,val);
- }
- }
- fprintf(stderr, "Unknown option: %s\n", name);
- exit(1);
+ return args_long2shortoption(options, name, val);
}
int args_callback_command(char*name, char*val) {
void args_callback_usage(char*name)
{
- printf("Usage: %s [-p range] [-P password] input.pdf [output.swf]\n", name);
- printf("\n");
- printf("-p range (range) Convert only pages in range\n");
- printf("-P password (password) Use password for deciphering the pdf\n");
+ printf("Usage: %s [-si] [-j quality] [-p range] [-P password] input.pdf [output.swf]\n", name);
printf("\n");
+ printf("-p --pages=range Convert only pages in range\n");
+ printf("-P --password=password Use password for deciphering the pdf\n");
+ printf("-s --shapes Don't use SWF Fonts, but store everything as shape\n");
+ printf("-i --ignore Ignore draw order (makes the SWF file smaller)\n");
+ printf("-j --jpegquality=quality Set quality of embedded jpeg pictures (default:85)\n");
+ printf("-v --verbose Be verbose. Use more than one -v for greater effect\n");
+ printf("-w --samewindow Don't open a new Browser Window for Links in the SWF\n");
+ printf("-f --fonts Store full fonts in SWF. (Don't reduce to used characters)\n");
+ printf("-V --version Print program version\n");
}
/* check whether the value t is in a given range.
srand48(time(0));
processargs(argn, argv);
initLog(0,-1,0,0,-1,loglevel);
+ 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(is_in_range(t, pagerange))
pdfswf_convertpage(t);
}
+ pdfswf_performconversion();
pdfswf_close();
return 0;