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
Hi Josh,
thanks for sharing, this looks very promising! I just tried your example link in IE11 and Chrome, it works for me.
Thank you for the extensive explanation Josh. Can't wait to play around with it.
WOw and thank you
works great in safari
Great example, Josh. Works great in Firefox and Chrome. Experimented with this earlier in the year. Gave up when it got sticky in IE8, as this was one of my requirements. I think it was in the method used for saving the PDF that failed. There was a Flash-based workaround but I found an alternate.
You might have some luck embedding your dependencies in a Web object and dynamically writing them into the head of your document to save having to add them after each publish. Here's the function I use to rewrite headers at run time. This doesn't work well for everything but for PDF generation it should be fine.
Your alternative sounds great Steve, could you build a working example based on Josh's file? I, and many other, tend to find playing with Javascript a little intimidating.... :(
Oh nice call on the object load, Steve, did not even think of the carry-on method for loading the scripts.
There are additional scripts and files provided from the jsPDF site that are supposed help the cross browser support including IE6-8, however, I have not tested it out. filesaver.js is unsupported below IE9 and the workaround refers to using downloadify, a flash/js combo.
What happened to be the alternative method used?
This is great code Josh, thanks. It works on Windows 8 in IE 11, FireFox 31.0 and Chrome 36.0 for me.
Josh, Steve,
Thank you very much!
Wow! THis is excellent!! Thank you so much for posting this information and sharing the source.
Hello All,
I am looking at purchasing Storyline 2; however this method of saving variables to PDF does not work in Storyline 2. Does anybody have any ideas as to why it will not work? Everything works perfect in Storyline 1.
PS - Thanks so much for this info & source! It is great!
Thanks
Don
I have not looked into this too much, however, quickly upgrading the file from SL1 to 2 and publishing it did not work locally, but did work when hosted. This happened to be similar behavior in SL1, though.
I've tried publishing the example and it is still not working for me :/
I fill in the forms click the download button and nothing happens. Is there a way to fix this?
This is great and just what I am looking for, but like Jackson I cannot get it to work. Any news on this?
Hi Jackson and welcome to E-Learning Heroes!
Hi Mandy!
You can see Josh's post above where he had to host the content for his shared example to work. Not sure if this is applicable to you.
Hopefully someone in the community will be able to assist you
Thanks for the response!
I tried to host the files, but unfortunately they still didn't work. The example files I downloaded worked, but once I converted it to an Articulate Storyline 2 file it stopped working.
Any ideas?
Hi Jackson! This is not something that Articulate supports and hopefully someone in the community will be able to assist you with
Hi Josh,
Thank you for sharing this. This is awesome!
Question: is this script unsupported by IE9? I've been testing it out on a few browsers and it works fine in Chrome and Firefox, but not in IE9. (I'm testing in IE9 because it is still used by some of our customers.) Do you have any suggestions as how to get around this?
I figured it out. Needs to be exported and uploaded to SCORM engine before it works. :)
Glad you got this figured out Gemz. Thanks for the update.
This all works great, until you open in the Articulate mobile Player, which doesn't allow Execute Javascript. Is there any way to perform this function server side so that the Mobile user can download the generated Pdf that contains the variables?
Hi, I have tested it and it works really great.
I have problem with some aspects of design of certificate(our PDF file) and I will write it here - maybe someone could help and it might be usefull for others.
1. How can we import an image background for certificate.
2. I'm using non-latin characters in words(I think it will be western latin characters for polish alphabet) - now we have problem with it - where should we set it up?
3. Text is alligned to left , can we center it?
I will be gratefull for any help, thank you ,
Damo
Wow, this information is great. Thanks for sharing.
I'd also like to know how to add a logo or graphics to the PDF file and align it left, centered or right. Is there anyone who can help with this?
Thanks
I downloaded the .zip file and try to run it in my computer but after I click the download nothing happen. (urgent issue.Thanks in advance!)
By the way I am using IE8. What should I do if I am restricted to upgrade my IE8? IE8 is my only browser. Can it be possible to continue this variable to pdf function?