diff --git a/core.py b/core.py
index 0396e31ee6c3c7494d4b41116a219a20dc1d2a3c..a88c7aa83ca1e8355adbee09d1fb09c67598e07e 100644
--- a/core.py
+++ b/core.py
@@ -49,6 +49,9 @@ def core(cardDirs, localroot=os.getcwd()):
                                         name = library.save_tag(localroot, root, yml_file, "name")
                                         qms.prepare_qms(localroot, root, file)
 
+                                        # determine the latest version number
+                                        nb = library.save_tag(localroot, root, yml_file, "history", "version")
+
                                     # remove the previous header
                                     n = header.remove_header(localroot, root, file)
 
@@ -82,7 +85,7 @@ def core(cardDirs, localroot=os.getcwd()):
 
 
                                     # generate the header for each card
-                                    h = header.generate_header(folder, permalink, shortcut, order, legacy_from, title, description, qms_yml)
+                                    h = header.generate_header(folder, permalink, shortcut, order, legacy_from, title, description, name, nb)
 
                                     # add autogenerated links to whitelist
                                     wl += whitelist.generate_whitelist_entry(folder, permalink, shortcut)
diff --git a/header.py b/header.py
index d83471ed1eaa9a2a315fceff4556e00e629412d7..59ca8c52dc93494aa99a83ae6828b0900078de2d 100644
--- a/header.py
+++ b/header.py
@@ -48,7 +48,7 @@ def element_header(folder, prefix, permalink, element):
 
     return element
 
-def generate_header(folder, permalink, shortcut, order, legacy_from, title, description, qms_yml):
+def generate_header(folder, permalink, shortcut, order, legacy_from, title, description, name="", nb=""):
     header = "---\n"
 
     if len(order) > 0:
@@ -94,7 +94,17 @@ def generate_header(folder, permalink, shortcut, order, legacy_from, title, desc
 
     # add title for QMS documents
     if qmsDoc:
+
+        if os.getenv('VERSION') is None:
+            ver = "latest"
+        else:
+            ver = os.getenv('VERSION')
+
         header += "\n# " + title + "\n"
+        header += "<center>"
+        header += "<a href='https://qms.lcsb.uni.lu/" + str(ver) + "/" + str(name) + "_v" + nb.replace(".", "") +".pdf'>Download the signed version (Version v" + nb + ") here</a>"
+        header += "</center>"
+
 
     print(title)
 
diff --git a/library.py b/library.py
index c1466cb088e7eed7225e4aba72d098fd5a2c6642..a7df6e2f69d7dd4e92120f0ab490cc81dd017865 100644
--- a/library.py
+++ b/library.py
@@ -8,7 +8,7 @@ from natsort import natsorted
 from generator import helper, format
 
 
-def save_tag(localroot, root, filename, tag):
+def save_tag(localroot, root, filename, tag, tag2=""):
     return_tag = ""
 
     os.chdir(root)
@@ -22,7 +22,10 @@ def save_tag(localroot, root, filename, tag):
             except yaml.YAMLError as exc:
                 print(exc)
 
-        return_tag = metadata[0][tag]
+        if len(tag2)>0:
+            return_tag = metadata[0][tag][0][tag2]
+        else:
+            return_tag = metadata[0][tag]
 
     else:
         with open(filename, 'r') as f: