diff --git a/docs/en_US/erd_tool.rst b/docs/en_US/erd_tool.rst
index c2ac3ab60..a8d71fe8b 100644
--- a/docs/en_US/erd_tool.rst
+++ b/docs/en_US/erd_tool.rst
@@ -62,6 +62,9 @@ Export Options
    | *Generate SQL*       | Click the *Generate SQL* icon to generate the DDL SQL for the diagram and open a query tool       | Option + Ctrl +|
    |                      | with the generated SQL ready for execution.                                                       | S              |
    +----------------------+---------------------------------------------------------------------------------------------------+----------------+
+   | *Download image*     | Click the *Download image* icon to save the ERD diagram in a image formate                        | Option + Ctrl +|
+   |                      |                                                                                                   | I              |
+   +----------------------+---------------------------------------------------------------------------------------------------+----------------+
 
 Editing Options
 ***************
diff --git a/docs/en_US/images/erd_tool_toolbar.png b/docs/en_US/images/erd_tool_toolbar.png
index 55cda2636..1491dc78b 100644
Binary files a/docs/en_US/images/erd_tool_toolbar.png and b/docs/en_US/images/erd_tool_toolbar.png differ
diff --git a/web/pgadmin/tools/erd/__init__.py b/web/pgadmin/tools/erd/__init__.py
index 1ce742186..8294a31a9 100644
--- a/web/pgadmin/tools/erd/__init__.py
+++ b/web/pgadmin/tools/erd/__init__.py
@@ -144,6 +144,24 @@ class ERDModule(PgAdminModule):
             fields=shortcut_fields
         )
 
+        self.preference.register(
+            'keyboard_shortcuts',
+            'download_image',
+            gettext('Download image'),
+            'keyboardshortcut',
+            {
+                'alt': True,
+                'shift': False,
+                'control': True,
+                'key': {
+                    'key_code': 73,
+                    'char': 'i'
+                }
+            },
+            category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
+            fields=shortcut_fields
+        )
+
         self.preference.register(
             'keyboard_shortcuts',
             'add_table',
diff --git a/web/pgadmin/tools/erd/static/js/erd_tool/ERDCore.js b/web/pgadmin/tools/erd/static/js/erd_tool/ERDCore.js
index 8faae4d01..865fc120f 100644
--- a/web/pgadmin/tools/erd/static/js/erd_tool/ERDCore.js
+++ b/web/pgadmin/tools/erd/static/js/erd_tool/ERDCore.js
@@ -355,14 +355,15 @@ export default class ERDCore {
 
   zoomOut() {
     let model = this.getEngine().getModel();
-    if(model) {
-      model.setZoomLevel(model.getZoomLevel() - 25);
+    let zoomLevel = model.getZoomLevel();
+    if(model && zoomLevel > 25) {
+      model.setZoomLevel(zoomLevel - 25);
       this.repaint();
     }
   }
 
   zoomToFit() {
-    this.getEngine().zoomToFit();
+    this.getEngine().zoomToFitNodes();
   }
 
   // Sample call: this.fireAction({ type: 'keydown', ctrlKey: true, code: 'KeyN' });
diff --git a/web/pgadmin/tools/erd/static/js/erd_tool/ui_components/BodyWidget.jsx b/web/pgadmin/tools/erd/static/js/erd_tool/ui_components/BodyWidget.jsx
index 1e3eff031..c36d87e03 100644
--- a/web/pgadmin/tools/erd/static/js/erd_tool/ui_components/BodyWidget.jsx
+++ b/web/pgadmin/tools/erd/static/js/erd_tool/ui_components/BodyWidget.jsx
@@ -158,6 +158,7 @@ export default class BodyWidget extends React.Component {
       [this.state.preferences.save_project, this.onSaveDiagram],
       [this.state.preferences.save_project_as, this.onSaveAsDiagram],
       [this.state.preferences.generate_sql, this.onSQLClick],
+      [this.state.preferences.download_image, this.onImageClick],
       [this.state.preferences.add_table, this.onAddNewNode],
       [this.state.preferences.edit_table, this.onEditNode],
       [this.state.preferences.clone_table, this.onCloneNode],
@@ -556,9 +557,13 @@ export default class BodyWidget extends React.Component {
       link.click();
     }).catch((err)=>{
       console.error(err);
+      let msg = gettext('Unknown error. Check console logs');
+      if(err.name) {
+        msg = `${err.name}: ${err.message}`;
+      }
       this.props.alertify.alert()
         .set('title', gettext('Error'))
-        .set('message', err).show();
+        .set('message', msg).show();
     }).then(()=>{
       /* Revert back to the original CSS styles */
       this.canvasEle.classList.remove('html2canvas-reset');
@@ -738,8 +743,8 @@ export default class BodyWidget extends React.Component {
         <ButtonGroup>
           <IconButton id="save-sql" icon="fa fa-file-code" onClick={this.onSQLClick} title={gettext('Generate SQL')}
             shortcut={this.state.preferences.generate_sql}/>
-          <IconButton id="save-image" icon="fa fa-file-image" onClick={this.onImageClick} title={gettext('Generate SQL')}
-            shortcut={this.state.preferences.generate_sql}/>
+          <IconButton id="save-image" icon="fa fa-file-image" onClick={this.onImageClick} title={gettext('Download image')}
+            shortcut={this.state.preferences.download_image}/>
         </ButtonGroup>
         <ButtonGroup>
           <IconButton id="add-node" icon="fa fa-plus-square" onClick={this.onAddNewNode} title={gettext('Add table')}
diff --git a/web/regression/javascript/erd/erd_core_spec.js b/web/regression/javascript/erd/erd_core_spec.js
index 6cb4d63a4..c42d4732b 100644
--- a/web/regression/javascript/erd/erd_core_spec.js
+++ b/web/regression/javascript/erd/erd_core_spec.js
@@ -37,7 +37,7 @@ describe('ERDCore', ()=>{
       'registerListener': null,
     }),
     'repaintCanvas': null,
-    'zoomToFit': null,
+    'zoomToFitNodes': null,
     'fireEvent': null,
   });
 
@@ -352,7 +352,7 @@ describe('ERDCore', ()=>{
 
     it('zoomToFit', ()=>{
       erdCoreObj.zoomToFit();
-      expect(erdEngine.zoomToFit).toHaveBeenCalled();
+      expect(erdEngine.zoomToFitNodes).toHaveBeenCalled();
     });
 
     it('fireAction', ()=>{
