Saving Storyline Variables to a PDF
Aug 13, 2014
I was asked about an example I created for saving variables from Storyline into a PDF file for download. Rather than fill the ELHChallenge thread with the information I decided to write up a thread on what I did. If you have any questions feel free to reach out.
The course executes JavaScript from within a Storyline (trigger) with the use of a client-side JavaScript PDF generator, jsPDF. This will not work locally, however, I have had successes with it functioning in IE11 without being hosted. It is easiest to design the PDF prior to inputting this into the course as you cannot preview. Thankfully, the jsPDF package contains an editor with their examples to design in.
Script & Demo Files for jsPDF:
Parallax: http://parall.ax/products/jspdf (contains an editor as well)
or via
GitHub: https://github.com/MrRio/jsPDF
1. Add Variables(score)/Text Entry fields
2. Add Trigger to execute JavaScript when user clicks (for downloading the PDF)
3. Retrieve the Player Variables within the .js field of the trigger and attach jsPDF settings per desired result look and feel.
**Notice an additional variable is created to transitioning the Storyline variable for the "Notes" in order to use ".splitTextToSize" for text wrapping within the PDF file. By default text wrapping does not occur.
4. Publish the course and add the applicable JavaScript files needed for your package (I placed mine within the "story_content" directory)
5. Add script files to the HTML <head></head>(story.html)
6. The result: Articulate Storyline Variables pushed to a downloadable PDF.
Storyline:
PDF Output:
Live Version:
https://googledrive.com/host/0B9kY09mQf_iqV3dTQ0Q4cUFvTlU/
Source & Published Files:
110 Replies
One more thing. I have been struggling with this a while... Is there an easy way to add images and center text?
Hi Emilse,
I'm not certain if Kristen is still subscribed to this thread to weigh in on what she ended up doing, but you could also reach out to anyone in this thread directly using the "contact me" button on their profile to see if they are able to share specifics.
@Emilse there's some information on formatting jsPDF documents here and here
Thanks Jedidiah for sharing those with Emilse
Thanks so much for the links Jedidiah.
I tried to insert images using that code from the instructions, but dataimg are too long (like 5 .pptx pages). I couldn’t insert them into the storyline box (the javascript box). I think there is a restriction in how much code you can insert in Storyline?… That’s why, I needed an alternative way of doing this. I have done research, but unfortunately I am not a coder and this things are very hard for me.
The other thing I was trying is to center texts. But this library doesn’t include this possibility. You only can adjust x/y parameters. L
Actually, if you're willing to open the user.js file after publishing you
can edit the script there. When you enter script into the storyline trigger
box it creates a function with a crazy name and inserts it into user.js
(under the story_content folder) in the published output.
Hi Emilse,
Just as an FYI, each JavaScript trigger can have up to 32,767 characters of code.
Thanks Jedidiah for sharing, I didn't know that. I will try to make it work :)
And thanks Ashley for the comment, is good to know.
Hi Emilse,
I haven't been actively pursuing a solution to my problems, as bigger issues have cropped up. However, I never did get my PDF working.
Hi Kristen,
Thanks for chiming back in here and sharing that update. If there is anything else we can assist with please feel free to let us know here or connect with our Support Engineers here.
I downloaded the files and it also does not work for me. I click Download and it just does nothing. I have all the files in the right place. I am using Chrome and will be using IE8 and IE11 browsers (upgrading soon but should still work in either). Anyone get this to work after having issues?
Hi Mary Ann,
Which files were you downloading? Did you upload your published course into a web server or LMS or were you testing it locally? You'll want to ensure you're testing in the intended environment as described here, as testing locally could cause you to encounter security restrictions.
Yes, you're right. I will try with the LMS... Thanks!
I was also unable to get this working until I opened the story.html file and added the following script references alongside the existing user.js and story.js tags.
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
(I have no idea if these are redundant, but I added all of them and presto - it all worked.)
Make sure that you also reference the FileSaver.js, jspdf.js etc. as described in the OP.
I also published without HTML5 as this seems to only work in the flash publish.
Sounds good Mary Ann - and definitely take a look at the info Jedidiah shared as well, as the JS elements are not something I can assist with.
Thanks Jedidiah!
Hello everybody!
This thread is probably not very followed as it is a bit old but I have been playing around with the story file provided and I managed to get it to work, even display accents (french alphabet) and add an image of the avatar selected by the user at the beginning of the course.
You can see the result here : published output and you can download the .story file just below.
I made this really quickly, I just wanted it to work, but I'm sure the file and the javascript function can be improved. Please let me know if you have any suggestion.
Thanks!
Always good to have new examples - thanks for sharing Celine!
Hi Celine!
That's awesome. Thanks for sharing :)
Hi There,
It works beautifully for me in Chrome (both HTML and HTML5, as well as IE11 HTML5, however I cannot get it to work IE11/Flash.
Your live version works in IE11/Flash, however when I download and publish the sample Storyline file, it also fails the same as mine.
Is there anything different about the configuration on the live version?
Thanks!!
Andrew
Hi Andrew,
Which version fails in IE/Flash? The published output that Celine shared or when you publish it and test it? For the latter are you uploading to your live environment or testing it locally? Testing published content locally is known to cause security issues as detailed here.
Wow quick reply! Thank you.
This is the live version posted above that works fine in IE11/Flash:
https://googledrive.com/host/0B9kY09mQf_iqV3dTQ0Q4cUFvTlU/
Below that where it has links to the "Source and Public files", that story file when published and hosted fails to work (IE11/Flash), but does work fine for HTML5 version. (also, it works chrome flash or HTML5).
Hi Andrew,
I get a 404 error when trying to access that page, can you double check the URL? Are you referencing the same URL that Celine shared above? That one seems to work fine for me - but if it's not working on your end please feel free to let us know. Also, if you've republished perhaps that's the one not working?
https://googledrive.com/host/0B9kY09mQf_iqV3dTQ0Q4cUFvTlU/
I just can't paste, yes its the one in the post above.
Hi Andrew,
It may be something I'll have to defer to the community on, as now it seems you're referencing the original post as in regards to the:
"Below that where it has links to the "Source and Public files""
That example included a number of Javascript elements which I"m unable to offer support for, but I do see about two months ago another user posted:
I was also unable to get this working until I opened the story.html file and added the following script references alongside the existing user.js and story.js tags.
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
(I have no idea if these are redundant, but I added all of them and presto - it all worked.)
Make sure that you also reference the FileSaver.js, jspdf.js etc. as described in the OP.
I also published without HTML5 as this seems to only work in the flash publish.
I didn't experience any difficulties opening the file Celine linked to earlier or the newest link you shared in your latest post.