LinkNamed*l = (LinkNamed*)action;
GString*name = l->getName();
if(name) {
- s = name->lowerCase()->getCString();
- named = name->getCString();
- if(strstr(s, "next") || strstr(s, "forward"))
- {
- page = currentpage + 1;
- }
- else if(strstr(s, "prev") || strstr(s, "back"))
- {
- page = currentpage - 1;
- }
- else if(strstr(s, "last") || strstr(s, "end"))
- {
- page = pages[pagepos-1]; //:)
- }
- else if(strstr(s, "first") || strstr(s, "top"))
- {
- page = 1;
- }
+ s = name->lowerCase()->getCString();
+ named = name->getCString();
+ if(!strchr(s,':'))
+ {
+ if(strstr(s, "next") || strstr(s, "forward"))
+ {
+ page = currentpage + 1;
+ }
+ else if(strstr(s, "prev") || strstr(s, "back"))
+ {
+ page = currentpage - 1;
+ }
+ else if(strstr(s, "last") || strstr(s, "end"))
+ {
+ page = pages[pagepos-1]; //:)
+ }
+ else if(strstr(s, "first") || strstr(s, "top"))
+ {
+ page = 1;
+ }
+ }
}
}
break;
insertstoptag = 1;
}
+void pdfswf_setversion(int n)
+{
+ flashversion = n;
+}
+
int closed=0;
void pdfswf_close()
{
void pdfswf_performconversion();
void pdfswf_storeallcharacters();
void pdfswf_insertstop();
+void pdfswf_setversion(int);
int pdfswf_numpages();
void pdfswf_convertpage(int page) ;
Allows pdf2swf to change the draw order of the pdf. This may make the generated
SWF files a little bit smaller, but it may also cause the images in the pdf to look funny.
.TP
-\fB\-j\fR, \fB\-\-jpegquality\fR
-Set quality of embedded jpeg pictures. 0 is worst (small), 100 is best (big). (default:85)
+\fB\-j\fR, \fB\-\-jpegquality\fR \fIquality\fR
+Set quality of embedded jpeg pictures to \fIquality\fR. 0 is worst (small), 100 is best (big). (default:85)
.TP
\fB\-w\fR, \fB\-\-samewindow\fR
When converting pdf hyperlinks, don't make the links open a new window when clicked on,
but open the page they point to in the window the SWF is displayed.
.TP
+\fB\-t\fR, \fB\-\-stop\fR
+Insert a stop() command in each page. The resulting SWF file will not turn pages automatically.
+.TP
+\fB\-T\fR, \fB\-\-flashversion\fR \fInum\fR
+Set Flash Version in the SWF header to \fInum\fR.
+.TP
\fB\-F\fR, \fB\-\-fontdir\fR \fIdirectory\fR
Add \fIdirectory\fR to the font search path.
.TP
pdfswf_insertstop();
return 0;
}
+ else if (!strcmp(name, "T"))
+ {
+ int i = atoi(val);
+ if(!strcasecmp(val, "mx"))
+ i = 6;
+ pdfswf_setversion(i);
+ return 1;
+ }
else if (!strcmp(name, "f"))
{
pdfswf_storeallcharacters();
{"b","defaultviewer"},
{"l","defaultpreloader"},
{"t","stop"},
+ {"T","flashversion"},
{0,0}
};
printf("-f --fonts Store full fonts in SWF. (Don't reduce to used characters)\n");
printf("-V --version Print program version\n");
printf("-t --stop Insert a \"Stop\" Tag in every frame (don't turn pages automatically)\n");
+ printf("-T --flashversion=num Set the flash version in the header to num (default: 4)\n");
#ifndef SYSTEM_BACKTICKS
printf("The following might not work because your system call doesn't support command substitution:\n");
#endif
int storeallcharacters=0;
int enablezlib=0;
int insertstoptag=0;
+int flashversion=4;
static int flag_protected = 0;
typedef unsigned char u8;
memset(&swf,0x00,sizeof(SWF));
- swf.fileVersion = 4;
+ swf.fileVersion = flashversion;
swf.frameRate = 0x0040; // 1 frame per 4 seconds
swf.movieSize.xmax = 20*sizex;
swf.movieSize.ymax = 20*sizey;
drawlink(obj, actions, 0, points,0);
}
+
+/* Named Links (a.k.a. Acrobatmenu) are used to implement various gadgets
+ of the viewer objects, like subtitles, index elements etc.
+*/
void swfoutput_namedlink(struct swfoutput*obj, char*name, swfcoord*points)
{
ActionTAG *actions1,*actions2;
+ char*tmp = strdup(name);
+ char mouseover = 1;
if(shapeid>=0)
endshape();
if(textid>=0)
endtext();
-
- actions1 = action_PushString(0, "/:subtitle");
- actions1 = action_PushString(actions1, name);
- actions1 = action_SetVariable(actions1);
- actions1 = action_End(actions1);
- actions2 = action_PushString(0, "/:subtitle");
- actions2 = action_PushString(actions2, "");
- actions2 = action_SetVariable(actions2);
- actions2 = action_End(actions2);
+ if(!strncmp(tmp, "call:", 5))
+ {
+ char*x = strchr(&tmp[5], ':');
+ if(!x) {
+ actions1 = action_PushInt(0, 0); //number of parameters (0)
+ actions1 = action_PushString(actions1, &tmp[5]); //function name
+ actions1 = action_CallFunction(actions1);
+ } else {
+ *x = 0;
+ actions1 = action_PushString(0, x+1); //parameter
+ actions1 = action_PushInt(actions1, 1); //number of parameters (1)
+ actions1 = action_PushString(actions1, &tmp[5]); //function name
+ actions1 = action_CallFunction(actions1);
+ }
+ actions2 = action_End(0);
+ mouseover = 0;
+ }
+ else
+ {
+ actions1 = action_PushString(0, "/:subtitle");
+ actions1 = action_PushString(actions1, name);
+ actions1 = action_SetVariable(actions1);
+ actions1 = action_End(actions1);
+
+ actions2 = action_PushString(0, "/:subtitle");
+ actions2 = action_PushString(actions2, "");
+ actions2 = action_SetVariable(actions2);
+ actions2 = action_End(actions2);
+ }
- drawlink(obj, actions1, actions2, points,1);
+ drawlink(obj, actions1, actions2, points,mouseover);
swf_ActionFree(actions1);
swf_ActionFree(actions2);
+ free(tmp);
}
static void drawlink(struct swfoutput*obj, ActionTAG*actions1, ActionTAG*actions2, swfcoord*points, char mouseover)
extern int jpegquality; //default:100;
extern int storeallcharacters; // default:0
extern int insertstoptag; //default:0
+extern int flashversion; //default:4
typedef long int twip;