2

I've got a list with a few thousands items. (It is a list of users that have completed some course.)

Sometimes a user would like to have a course diploma printed. How could we achieve this?

Alternative 1: The obvious solution would be to make the list be a document library, connect a template and then you could simply print the document directly. The disadvantage would be that you would have to store thousands of documents that never would be used. (The main purpose of the list is just to keep track of users completing a course)

Alternative 2: Store the users in a list as today, but then generate the document on the fly. In that case we have two more options, server side or client side (JavaScript).

I would like to take the clientside approach (https://github.com/edi9999/docxtemplater ) but this lacks support for IE.

Finally the question: Are there other options for generating this doc clientside? Is alternative 1 the best solution?

4
  • Hi, I'm the leader of docxtemplater. What's the oldest version of IE you would like to support ? I think I know how to do this with IE now, even if it is not yet completely documented in the repository.
    – edi9999
    Commented Jun 24, 2014 at 10:08
  • Hi! Thanks for checking this out. They are on IE9.
    – Larsi
    Commented Jun 25, 2014 at 8:45
  • Well if you can wait for a week, I could add support for IE 9 (a library I am depending on wasn't supporting IE by the time and now it does).
    – edi9999
    Commented Jun 25, 2014 at 11:59
  • For this case I ended up with the OOTB approach, but if there was IE support I definitvly would try it in a future case. Anyway thanks for a cool project!
    – Larsi
    Commented Jun 27, 2014 at 11:15

3 Answers 3

2

I always prefer the OOTB method to get maximum advantage & support.

In your Case, i prefer Option 1 Because As you mentioned few thousand items will be stored. SharePoint List can handle multi-Million documents so few thousands will not hurt. Only thing you need to worry is manually upload the documents or may be import in bulk.

on the other hand, Client Scripting also good but as i am not good developer and have alot of issues during the upgrade / patches /SP so i preferred stay OOTB as much as i can.

2

I had a similar scenario where we wanted to track certificates of completion for things. I used option 2. The data was stored in a list and I had just created a simple "certificate page" that had some query string params in it to fetch the proper data (custom data view web part). It would fill in all the blanks based on the list data.

The page had a simple print stylesheet to it so users could print it on the fly. It also concatenated all of this data to make a unique certificate ID that admins could leverage to verify a user did complete the course.

0
1

I'd say use the second option and do all client side scripting, so that way it may carry over to newer versions. Build a form and you can manually write the html based on the course, user, date, or anything else in the metadata, then have a stamped image or however you want to trademark the 'certification'. Then have it displayed in a popup window with no masterpage. You can accomplish this through JSOM, REST API through javascript, or even through JSLink.

1
  • I ended up with the OOTB approach, but the developer in me would like to go with your version :-)
    – Larsi
    Commented Jun 25, 2014 at 8:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.