/ Id-Extras Forum / Document Action Close script?
-
Author
-
mikek
ParticipantI see how I can drop my JavaScript into FormMaker (this is very helpful), but I didn’t see a place where I can add a Document Action (Will Close) script. Is this possible?
~~Ariel~~
ParticipantHi Mike,
When you say, “I can drop my JavaScript into FormMaker”, you mean that it’s possible to add a general “document”-level script right?For now, it is true that there is no specific UI to add a Document Action. However, there’s a very simple workaround for this: When a document Javascript is added with FormMaker, it is run as soon as FormMaker is applied in Acrobat.
So the answer is to add your document “Will Close” action by creating a document script that adds it.
Once you’re ready to distribute the PDF, simply delete that particular document script from the PDF.
To add a document action script is really simple. Here’s an example of adding a “WillSave” and “DidSave” action (from the Acrobat SDK):// WillSave script var myWillSave = 'var filesizeBeforeSave = this.filesize;' + 'console.println("File size before saving is " + ' + ' filesizeBeforeSave );'; // DidSave script var myDidSave = 'var filesizeAfterSave = this.filesize;' + 'console.println("File size after saving is "' + 'filesizeAfterSave);' + 'var difference = filesizeAfterSave - filesizeBeforeSave;' + 'console.println("The difference is " + difference );' + 'if ( difference < 0 )' + 'console.println("Reduced filesize!");' + 'else' + 'console.println("Increased filesize!");' // Set document actions... this.setAction("WillSave", myWillSave); this.setAction("DidSave", myDidSave);
… and for for “WillClose” you’d do exactly the same.
Does that make sense?
Ariel-
This reply was modified 1 year, 3 months ago by
~~Ariel~~.
-
This reply was modified 1 year, 3 months ago by
~~Ariel~~.
-
This reply was modified 1 year, 3 months ago by
~~Ariel~~.
-
This reply was modified 1 year, 3 months ago by
~~Ariel~~. Reason: Fixed script formatting
Keltexan
ParticipantHello Ariel,
Is this to be added to the beginning of the script you want to add to “Will Save” and placed at the document level, or is it separate? If separate, how do you signify the particular script you want to put into “Will Save”?
Keltexan
ParticipantThank you for sharing this, Ariel! I worked through it and was able to make it function.
Keltexan
ParticipantThank you for sharing this, Ariel! I worked through it and was able to make my Will Close script write to that action.
// reverts to user’s preferences
var myWillClose = ‘app.runtimeHighlight = hiliUserPrefs;’
+’ app.runtimeHighlightColor = colorUserPrefs;’;// Set document actions…
this.setAction(“WillClose”, myWillClose);Just for aesthetics, is there a way to put a line break in there so that when it is written to Will Close, it will break it line by line?
~~Ariel~~
ParticipantGlad it you managed to get it work!
For line breaks, try adding \r wherever a line break is needed in the script string (usually after each semicolon, etc.)
If that doesn’t work, maybe \r\n or \n\r (line break + new line)
-
This reply was modified 1 year, 3 months ago by
~~Ariel~~.
-
This reply was modified 1 year, 3 months ago by
-
AuthorPosts
Tagged: FormMaker