Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top