diff --git a/app.py b/app.py
index 9462b4c07a21d7fb73c5ec1c40beeac0b8756bdc..8bac3839545e02f2649caaa6ac05177b3d69ac10 100644
--- a/app.py
+++ b/app.py
@@ -378,7 +378,7 @@ def hpgl (id):
     with open(hpgl_file, 'r') as hpgl_handle:
         r = Response(hpgl_handle.read(), mimetype='application/hpgl')
         r.headers.extend({
-            'Content-Disposition': 'attachment; filename="cobbled-paths.hpgl"'
+            'Content-Disposition': f'attachment; filename="cobbled-paths-{id}.hpgl"'
         })
 
     # remove tmp file
diff --git a/templates/drawing.html b/templates/drawing.html
index 70e385355d4a63b1d022428db992be046953325f..3ff18203714610b811739dcde2ebbd279a4e6f8e 100644
--- a/templates/drawing.html
+++ b/templates/drawing.html
@@ -5,7 +5,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <script src="/static/js/FileSaver.js"></script>
     <style>
-      #save-svg{
+      #save-buttons{
         position: fixed;
         top: 0.5em;
         right: 0.5em;
@@ -28,7 +28,10 @@
 
     {{ svg|safe }}
 
-    <button id="save-svg">> SVG</button>
+    <div id="save-buttons">
+      <button id="save-svg">> SVG</button>
+      <button id="save-hpgl">> HPGL</button>
+    </div>
 
     <script>
       function get2bodyclass(){
@@ -58,6 +61,25 @@
         let blob = new Blob([source], {type: "text/plain;charset=utf-8"});
         saveAs(blob, 'cobbled-paths.svg');
       });
+
+      let save_button_hpgl = document.getElementById('save-hpgl');
+      save_button_hpgl.addEventListener('click', function () {
+        let url = document.URL,
+            parts = url.split('/'),
+            name = parts[parts.length-1],
+            hpgl_url = '/hpgl/' + name,
+            a = document.createElement('a');
+        a.href = hpgl_url;
+        a.setAttribute('download', 'download');
+        if (document.createEvent) {
+          const event = document.createEvent('MouseEvents');
+          event.initEvent('click', true, true);
+          a.dispatchEvent(event);
+        }
+        else {
+          a.click();
+        }
+      });
     </script>
 
   </body>