diff --git a/.gitignore b/.gitignore
index b512c09d476623ff4bf8d0d63c29b784925dbdf8..14062779341f0bac408e84dd5eab983f171f1786 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-node_modules
\ No newline at end of file
+node_modules
+output
diff --git a/package-lock.json b/package-lock.json
index 06b59756f0db46ab4af033db83f57458c312d6bc..9830fd69facf4cf1a38527304e8389277853ad3d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "pagedjs-cli",
-  "version": "0.0.3",
+  "version": "0.0.4",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -58,11 +58,6 @@
         "pako": "^1.0.6"
       }
     },
-    "@types/node": {
-      "version": "11.13.8",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.8.tgz",
-      "integrity": "sha512-szA3x/3miL90ZJxUCzx9haNbK5/zmPieGraZEe4WI+3srN0eGLiT22NXeMHmyhNEopn+IrxqMc7wdVwvPl8meg=="
-    },
     "accepts": {
       "version": "1.3.5",
       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
@@ -176,11 +171,6 @@
         "type-is": "~1.6.16"
       }
     },
-    "boolbase": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
-      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
-    },
     "brace-expansion": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -222,19 +212,6 @@
       "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
       "dev": true
     },
-    "cheerio": {
-      "version": "1.0.0-rc.3",
-      "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
-      "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
-      "requires": {
-        "css-select": "~1.2.0",
-        "dom-serializer": "~0.1.1",
-        "entities": "~1.1.1",
-        "htmlparser2": "^3.9.1",
-        "lodash": "^4.15.0",
-        "parse5": "^3.0.1"
-      }
-    },
     "cli-cursor": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
@@ -336,17 +313,6 @@
         "which": "^1.2.9"
       }
     },
-    "css-select": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
-      "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
-      "requires": {
-        "boolbase": "~1.0.0",
-        "css-what": "2.1",
-        "domutils": "1.5.1",
-        "nth-check": "~1.0.1"
-      }
-    },
     "css-tree": {
       "version": "1.0.0-alpha.29",
       "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
@@ -356,11 +322,6 @@
         "source-map": "^0.5.3"
       }
     },
-    "css-what": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
-      "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
-    },
     "d": {
       "version": "1.0.0",
       "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
@@ -410,37 +371,6 @@
         "esutils": "^2.0.2"
       }
     },
-    "dom-serializer": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
-      "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
-      "requires": {
-        "domelementtype": "^1.3.0",
-        "entities": "^1.1.1"
-      }
-    },
-    "domelementtype": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
-      "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
-    },
-    "domhandler": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
-      "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
-      "requires": {
-        "domelementtype": "1"
-      }
-    },
-    "domutils": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
-      "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
-      "requires": {
-        "dom-serializer": "0",
-        "domelementtype": "1"
-      }
-    },
     "ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -457,11 +387,6 @@
       "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
       "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
     },
-    "entities": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
-      "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
-    },
     "es5-ext": {
       "version": "0.10.49",
       "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
@@ -848,31 +773,6 @@
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
       "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
     },
-    "htmlparser2": {
-      "version": "3.10.1",
-      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
-      "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
-      "requires": {
-        "domelementtype": "^1.3.1",
-        "domhandler": "^2.3.0",
-        "domutils": "^1.5.1",
-        "entities": "^1.1.1",
-        "inherits": "^2.0.1",
-        "readable-stream": "^3.1.1"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "3.3.0",
-          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
-          "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
-          "requires": {
-            "inherits": "^2.0.3",
-            "string_decoder": "^1.1.1",
-            "util-deprecate": "^1.0.1"
-          }
-        }
-      }
-    },
     "http-errors": {
       "version": "1.6.3",
       "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
@@ -1184,13 +1084,10 @@
       "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
       "dev": true
     },
-    "nth-check": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
-      "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
-      "requires": {
-        "boolbase": "~1.0.0"
-      }
+    "node-fetch": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.4.1.tgz",
+      "integrity": "sha512-P9UbpFK87NyqBZzUuDBDz4f6Yiys8xm8j7ACDbi6usvFm6KItklQUKjeoqTrYS/S1k6I8oaOC2YLLDr/gg26Mw=="
     },
     "on-finished": {
       "version": "2.3.0",
@@ -1290,14 +1187,6 @@
         "callsites": "^3.0.0"
       }
     },
-    "parse5": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
-      "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
-      "requires": {
-        "@types/node": "*"
-      }
-    },
     "parseurl": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
diff --git a/package.json b/package.json
index 5801225e8e85df1442db86b2c779e843b5269488..02bae4b823fe4f5b92e9794feaa7372dd76071af 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pagedjs-cli",
-  "version": "0.0.3",
+  "version": "0.0.5",
   "author": "Fred Chasen",
   "license": "MIT",
   "homepage": "https://pagedmedia.org",
@@ -21,6 +21,7 @@
     "katex": "^0.10.1",
     "lodash": "^4.17.11",
     "mathjax": "^2.7.5",
+    "node-fetch": "^2.4.1",
     "ora": "^3.4.0",
     "pagedjs": "^0.1.34",
     "pdf-lib": "^0.6.1",
diff --git a/src/printer.js b/src/printer.js
index 88f6ad379b676ec0ea7a0df348931ab3477b45d6..29d4b543e655d90bb456672262fde58557b1a4bf 100644
--- a/src/printer.js
+++ b/src/printer.js
@@ -3,13 +3,16 @@ const EventEmitter = require('events');
 const puppeteer = require('puppeteer');
 const util = require('util');
 const fs = require('fs');
-const readFile = util.promisify(fs.readFile);
+const fetch = require("node-fetch");
 
 const path = require('path');
 
 let dir = process.cwd();
 
-let scriptPath = path.resolve(dir, "./node_modules/pagedjs/dist/");
+// Find top most pagedjs
+let pagedjsLocation = require.resolve("pagedjs/dist/paged.polyfill.js");
+let paths = pagedjsLocation.split("node_modules");
+let scriptPath = paths[0] + "node_modules" + paths[paths.length-1];
 
 const PostProcesser = require('./postprocesser');
 
@@ -36,7 +39,8 @@ class Printer extends EventEmitter {
   async setup() {
     const browser = await puppeteer.launch({
       headless: this.headless,
-      args: this.allowLocal ? ['--allow-file-access-from-files'] : []
+      args: this.allowLocal ? ['--allow-file-access-from-files', '--disable-dev-shm-usage', '--no-sandbox'] : ['--disable-dev-shm-usage', '--no-sandbox'],
+      ignoreHTTPSErrors: true
     });
 
     return browser;
@@ -54,10 +58,15 @@ class Printer extends EventEmitter {
 
     const page = await this.browser.newPage();
 
-    let url, html;
+    let uri, url, html;
     if (typeof input === "string") {
       try {
-        url = new URL(input);
+        uri = new URL(input);
+        if (uri.protocol === "https:") {
+          html = await fetch(input)
+            .then(res => res.text())
+        }
+        url = input;
       } catch {
         let relativePath = path.resolve(dir, input);
         url = "file://" + relativePath;
@@ -72,6 +81,18 @@ class Printer extends EventEmitter {
         .catch((e) => {
           console.error(e);
         });
+
+      if (url) {
+        await page.evaluate((url) => {
+          let base = document.querySelector("base");
+          if (!base) {
+            base = document.createElement("base");
+            document.querySelector("head").appendChild(base);
+          }
+          base.setAttribute("href", url);
+        }, url);
+      }
+
     } else {
       await page.goto(url)
         .catch((e) => {
@@ -85,8 +106,10 @@ class Printer extends EventEmitter {
       }
     });
 
+
+
     await page.addScriptTag({
-      path: path.resolve(__dirname, "../node_modules/pagedjs/dist/paged.polyfill.js")
+      path: scriptPath
     });
 
     // await page.exposeFunction('PuppeteerLogger', (msg) => {